Flink學習筆記——Execution Mode


Flink有3中運行模式,分別是STREAMING,BATCH和AUTOMATIC

Ref

https://ci.apache.org/projects/flink/flink-docs-release-1.12/zh/dev/datastream_execution_mode.html

1.STREAMING運行模式 是DataStream默認的運行模式

2.BATCH運行模式 也可以在DataStream API上運行

3.AUTOMATIC運行模式 是讓系統根據source類型自動選擇運行模式

可以通過命令行來配置運行模式

bin/flink run -Dexecution.runtime-mode=BATCH examples/streaming/WordCount.jar

也可以在代碼中配置

StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
env.setRuntimeMode(RuntimeExecutionMode.BATCH);

 

STREAMING運行模式中,Flink使用StateBackend來控制狀態存儲和checkpoint的工作,RocksDBStateBackend支持增量Checkpoint,其他2個不支持

BATCH運行模式中,statebackend是被忽略的,batch模式不支持checkpoint

Flink支持3種狀態后端(StateBackend),其中

1.MemoryStateBackend
2.FsStateBackend
3.RocksDBStateBackend

何時使用 RocksDBStateBackend

1.RocksDBStateBackend 最適合用於處理大狀態,長窗口,或大鍵值狀態的有狀態處理任務。
2.RocksDBStateBackend 非常適合用於高可用方案。
3.RocksDBStateBackend 是目前唯一支持增量 checkpoint 的后端。增量 checkpoint 非常使用於超大狀態的場景。

StateBackend可以參考

【flink】flink狀態后端配置-設置State Backend

Flink 小貼士 (4): 如何選擇狀態后端

從RocksDBStateBackend講述Flink的State機制

  

STREAMING運行模式中,flink使用checkpoint來進行容錯,checkpoint參考

https://ci.apache.org/projects/flink/flink-docs-release-1.12/zh/dev/stream/state/checkpointing.html

BATCH運行模式中,flink會回滾到到之前的stage,只有失敗的task才會重啟,這比從checkpoint重啟所以的task要高效,所以建議如果任務能在BATCK運行模式下運行,就使用BATCH運行模式

 

Broadcast State

1. STREAMING運行模式,一個典型應用就是允許一個控制流接收一個rules,並將其廣播到其他的stream中

2. BATCH運行模式不支持

 


免責聲明!

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



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