Flink检查点(checkpoint)、 保存点(savepoint)的区别和联系

一、Flink checkpoint

Checkpoint是Flink实现容错机制最核心的功能,能够根据配置周期性的基于Stream中各个Operator的状态来生成Snapshot,从而将这些状态数据定期持久存储下来,当Flink程序一旦意外崩溃时,重新运行程序时可以有选择的从这些Snapshot进行恢复,从而修正因为故障带来的程序数据状态中断。

1、Checkpoint指定触发生成时间间隔后,每当需要触发Checkpoint时,会向Flink程序运行时的多个分布式Stream Source中插入一个Barrier标记。

2、当一个Operator接收到一个Barrier时,它会暂停处理Steam中新接收到的数据记录

3、每个Stream中都会存在对应的Barrier,该Operator要等到所有的输入Stream中的Barrier都到达。当所有Stream中的Barrier都已经到达该Operator,这时所有的Barrier在时间上看来是同一个时刻点(表示已经对齐)

4、该Operator会将数据记录(Outgoing Records)发射(Emit)出去,作为下游Operator的输入

5、最后将Barrier对应Snapshot发射(Emit)出去作为此次Checkpoint的结果数据

开启checkpoint

val env = StreamExecutionEnvironment.getExecutionEnvironment
env.setStateBackend(new FsStateBackend("hdfs://ip:8020/flink/flink-checkpoints"))
val config = env.getCheckpointConf

  • 27
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值