Flink Checkpoint(检查点)
Flink中的每个函数和运算符都可以是有状态的(如果是Keyed Stream,使用ValueState、ListState等状态,如果是Operator State,实现CheckpointedFunction或CheckpointedList接口。使用ListState、MapState获取状态)。有状态的函数在各个元素/事件处理中存储数据。使状态成为任何类型的更复杂操作的关键构建块。
为了使状态容错,Flink需要检查状态。Checkpoint(检查点)允许Flink恢复流中的状态和位置,从而为应用程序提供与无故障执行相同的语义。
1、Checkpoint的先决条件
一般来说,checkpoint机制和流的状态持久存储 需要满足:
-
可重放地数据源(Source)。例如Apache Kafka、RabbitMQ、文件系统(HDFS、S3)等。
-
可靠地文件系统,因为State(状态)需要持久存储,通常是需要分布式文件系统,如HDFS、S3等。
2、启用和配置Checkpoint
默认情况下,Checkpoint是被禁用的。如需使用Checkpoint机制,需要调用env.enableCheckpointing(long interval)。需要设置一个间隔时间,每个间隔时间发出一次Checkpoint。
Checkpoint参数设置
下面直接以代码的方式展示描述:
StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
// 设置启用 Checkpoint,默认 CheckpointMode为 EXACTLY_ONCE(精准一次)
env.enableCheckpointing(6000);
// enab

&spm=1001.2101.3001.5002&articleId=94573797&d=1&t=3&u=a5a0c215c33b48dfa9e17af095123206)
4336

被折叠的 条评论
为什么被折叠?



