本文主要是介绍flink流批一体概念与配置,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
flink流批一体概念与配置
- 什么时候可以/应该使用批处理执行模式?
- 配置批处理执行模式
- 流批执行模式的区别
- 任务调度和网络Shuffle
- 流执行模式
- 批量执行模式
- 状态后端/状态
- 处理顺序
- 事件时间/水印
- 处理时间
- 故障恢复
- 需要注意的点
- 检查点
- 编写自定义操作符
什么时候可以/应该使用批处理执行模式?
BATCH执行模式只能用于有界的数据源。有界性是数据源的一个属性,它告诉我们来自该数据源的所有输入在执行之前是否已知,或者是否会无限期地出现新数据。反过来,如果一个作业的所有源都是有界的,那么它就是有界的,否则就是无界的。
另一方面,流执行模式既可以用于有边界作业,也可以用于无边界作业。
根据经验,当程序有边界时,应该使用BATCH执行模式,因为这样效率更高。当您的程序是无界的时,您必须使用流执行模式,因为只有这种模式足够通用,能够处理连续的数据流。
配置批处理执行模式
执行模式可以通过execute .runtime-mode设置进行配置。有三种可能的值:
- STREAMING:经典的DataStream执行模式(默认)
- BATCH:DataStream API上的批处理式执行
- AUTOMATIC:让系统根据源的有界性来决定
可以通过bin/flink run…的命令行参数进行配置,或在创建/配置StreamExecutionEnvironment时以编程方式。
下面是如何通过命令行配置执行模式:
$ bin/flink run - execution.runtime-mode=BATCH examples/streaming/WordCount.jar
下面这个例子展示了如何在代码中配置执行模式:
StreamExecutionEnvironment env = StreamExecutionEnvironment. getExecutionEnvironment
这篇关于flink流批一体概念与配置的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!