Flink相對於Spark的優點


Flink相對於Spark的優點

容錯

Flink 基於兩階段提交實現了精確的一次處理語義。

Spark Streaming 只能做到不丟數據,但是有重復。

反壓

Flink 在數據傳輸過程中使用了分布式阻塞隊列,一個阻塞隊列中,當隊列滿了以后發送者會被天然阻塞住,這種阻塞功能相當於給這個阻塞隊列提供了反壓的能力。

Spark Streaming 為了實現反壓這個功能,在原來的架構基礎上構造了一個“速率控制器”,這個“速率控制器”會根據幾個屬性,如任務的結束時間、處理時長、處理消息的條數等計算一個速率。在實現控制數據的接收速率中用到了一個經典的算法,即“PID 算法”。

流和微批

Flink是流處理,用流的思想做批處理。

Spark 是微批處理,用批的思想做流處理。

延時

sparkstreaming是秒級別的

Structured Streaming是毫秒級別的

Flink是亞秒級別的

狀態存儲

spark的狀態管理目前做的比較簡單,只有兩個對應的算子(UpdateStateByKey和mapWithState)

Flink 提供文件、內存、RocksDB 三種狀態存儲,五種類型的狀態,(ValueState,ListState,ReducingState,AggregatingState,FoldingState,MapState)

靈活的窗口

Spark只能根據處理時間窗口批量處理

Flink可以基於處理時間,數據時間,沒有記錄等的窗口


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM