https://blog.csdn.net/rlnLo2pNEfx9c/article/details/82505159 css
今天。主要想聊聊spark streaming的使用心得。html
1,基本使用redis
主要是轉換算子。action,和狀態算子,這些事實上,就依照api手冊或者源代碼裏接口介紹結合業務來編碼。
api
事實上,想用好spark streaming 掌握spark core,spark rpc。spark 任務調度。spark 並行度等原理還很是有必要。
緩存
2。中間狀態緩存微信
說到中間算子你們確定都會想到UpdateStateByKey等狀態。裏面很是多注意事項,比方順序性。key的超時機制維護。這個適合數據量很少,尤爲是key的維度很少,value不大的狀況。post
固然數據量上來了,要想維護中間狀態怎麼辦?事實上這個時候確定是第三方存儲,比方redis,alluxio。redis更適合那種key帶超時機制的。而且數據量確定不能過大。而alluxio就很是適合那種高吞吐量的,比方去重統計。編碼
3,結果輸出spa
direct streaming能保證僅一次處理,但是要求輸出存儲支持密等性。或者主動將結果更改成存在更新不存在插入。固然,假設外部存儲系統支持事務那就更嗨。能實現恰一次處理。.net
實際上在offset維護這個層面上,spark streaming 不一樣版本號於kafka不一樣版本號結合實現有很是大不一樣。
4,監控告警及故障本身主動恢復
我認爲對於監控告警及故障本身主動恢復。重要程度不亞於業務場景。因爲再好的業務實現,架不住系統掛掉你不知道。因爲你總不能二十四小時盯着系統。而且很是多公司對故障本身主動恢復都有kpi。比方3min,人工去檢測故障並恢復不太可能,需要本身實現一套監控系統。
5,調優
調優對於spark streaming很是重要,因爲一個批次處理延遲就會致使job堆積。結果輸出延遲,深圳任務掛掉數據丟失。
調優事實上最注重對spark 原理把控,數據量的瞭解及資源和數據的關係。
6,源代碼
源代碼閱讀。爲了幫助你們更透徹的理解原理。主要會分三塊:
spark streaming 與kafka-0.8.2 direct stream。
spark streaming 與kafka-0.8.2 receiver based stream。
spark streaming 與kafka-0.10.2 direct api。
這些內容比較多。本週日晚上八點到十點浪尖準備搞個qq直播,對這些內容有興趣的小夥伴可以掃碼參團,費用不高。算是對浪尖創做的支持吧。
固然。準備是兩到三次,每次兩個小時。實際次數看效率。
參與直播的直接聯繫微信 158570986
固然,要是喜歡浪尖,更但願增長浪尖知識星球,球友可以免費參與直播。