Flink Checkpoint(检查点)

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值