您好,登錄后才能下訂單哦!
spark中如何使用streaming,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
1,基本使用
主要是轉換算子,action,和狀態算子,這些其實,就按照api手冊或者源碼里接口介紹結合業務來編碼。
其實,想用好spark streaming 掌握spark core,spark rpc,spark 任務調度,spark 并行度等原理還非常有必要。
2,中間狀態緩存
說到中間算子大家肯定都會想到UpdateStateByKey等狀態。里面很多注意事項,比如順序性,key的超時機制維護。這個適合數據量不多,尤其是key的維度不多,value不大的情況。
當然數據量上來了,要想維護中間狀態怎么辦?其實這個時候肯定是第三方存儲,比如redis,alluxio。redis更適合那種key帶超時機制的,并且數據量肯定不能過大。而alluxio就很適合那種高吞吐量的,比如去重統計。
3,結果輸出
direct streaming能保證僅一次處理,但是要求輸出存儲支持密等性,或者主動將結果更改為存在更新不存在插入。當然,如果外部存儲系統支持事務那就更嗨,能實現恰一次處理。
實際上在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。
關于spark中如何使用streaming問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。