Flink checkPoint和SavePoint

Flink的Savepoint和Checkpoint是实现容错的关键。Checkpoint是定时触发的自动保存,用于内部故障恢复,但手动取消时会丢失。Savepoint则由用户手动触发,常用于程序升级或调整并行度,不会因job取消而丢失。触发Savepoint可通过命令行工具直接触发或在取消/停止job时触发。在数据一致性要求高的场景下,推荐使用Savepoint。在Checkpoint过程中,barrier用于分隔记录,确保数据正确划分到各个快照中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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中并行传输,意味着相同时间可以并行执行快照操作

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员路同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值