flink的检查点(checkpoint)和保存点(savepoint)的区别

本文详细介绍了Flink的检查点和保存点机制。检查点是自动触发的,通过在输入流中设置屏障并备份状态到稳定存储,确保在故障时能实现exactly-once语义。保存点则类似于检查点,但需要手动触发,适用于应用程序升级、Flink版本更新、维护迁移等场景,提供灵活的数据恢复和测试策略。

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

一、检查点:检查点屏障跟普通记录一样。它们由算子处理,但并不参与计算,而是会触发与检查点相关的行为。会在算子之间流动。当读取输入流的数据源遇到检查点屏障时,它将其在输入流中的位置保存到稳定存储中。如果输入流来自消息传输系统(Kafka 或 MapR Streams),这个位置就是偏移量。Flink 的存储机制是插件化的,稳定存储可以是分布式文件系统,如HDFS、S3 或 MapR-FS

如图所示,位于检查点之前的所有记录(["b",2]、["b",3] 和 ["c",1])被 map 算子处理之后的情况。此时,稳定存储已经备份了检查点屏障在输入流中的位置(备份操作发生在检查点屏障被输入算子处理的时候)。map 算子接着开始处理检查点屏障,并触
发将状态异步备份到稳定存储中这个动作

当 map 算子的状态备份和检查点屏障的位置备份被确认之后,该检查点操作就可以被标记为完成,如下图所示。我们在无须停止或者阻断计算的条件下,在一个逻辑时间点(对应检查点屏障在输入流中的位置)为计算状态拍了快照。通过确保备份的状态和位置指向同一个逻辑时间点,后文将解释如何基于备份恢复计算,从而保证 exactly-once。值得注意的是,当没有出现故障时,Flink 检查点的开销极小,检查点操作的速度由稳定存储的可用带宽决定。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值