zl程序教程

您现在的位置是:首页 >  大数据

当前栏目

Flink checkPoint和SavePoint

flink CheckPoint
2023-09-11 14:16:28 时间

savepoint和checkpoint都是flink为容错提供的强大功能特性,能够自动或手动保存job的运行状态

两者区别

checkpoint

应用定时触发,用户保存状态,会过期,内部应用失败重启的时候启用,但是手动cancel时,会删除之前的checkpoint

savepoint:

用户手动置顶,相当于状态的备份,可以在bin/flink cancel xx的时候调用,一般用于修改并行度,程序升级等等。

如果想要在程序停掉后重启,数据一致的情况下,强烈推荐使用cancel时做savepoint,当然如果程序中没有涉及到state,可以不用

触发savepoint

触发有2种方式:

1)直接触发===>bin/flink savepoint jobId [targetDirectory] [-yid yarnAppId] 针对yarn模式需要指定 -yid参数

2)cancel/stop时触发===> bin/flink cancel/stop -s [targetDirectory] jobId [-yid yarnAppId]。针对yarn模式需要指定 -yid参数

Checkpoint解读

在Flink分布式计算中,容错往往是值得关注的点,Flink本身通过Checkpoint操作进行快照处理,保证job执行的稳定性以及Failover的可靠性。checkpoint不会打断stream、data-flow。

在Checkpoint中有个很关键的要素:barriers

  • barrier将stream中的record划分不同的checkpoint段,barrier不会超过record,严格排在数据的后面
  • 每个barrier都会携带相应的ID,来区分相应的快照snapshot(checkpoint)
  • 不同checkpoint的barrier可以在stream中并行传输,意味着相同时间可以并行执行快照操作