當前位置:聚美館>智慧生活>心理>

flink爲什麼比spark好

心理 閱讀(1.34W)
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可以基於處理時間,數據時間,沒有記錄等的視窗