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运行模式不支持

 

相关文章:

  • 2021-05-30
  • 2021-07-07
  • 2021-07-14
  • 2021-07-14
  • 2021-10-30
  • 2021-08-05
  • 2022-02-28
  • 2021-10-01
猜你喜欢
  • 2021-10-24
  • 2021-06-26
  • 2021-09-17
  • 2021-10-24
  • 2021-11-30
  • 2022-01-04
相关资源
相似解决方案