Flink之checkpoint和savepoint的区别

本文详细介绍了Flink的Checkpoint和Savepoint机制。Checkpoint是Flink自动执行的快照,用于容错恢复,确保ExactlyOnce或AtleastOnce语义。Savepoint则是用户手动触发,用于作业更新或恢复,保存在稳定存储中,可长期保留。两者在触发方式、目的和状态管理上有显著区别。

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

1.什么是Checkpoint
Checkpoint:一种由 Flink 自动执行的快照,其目的是能够从故障中恢复。Checkpoint 使 Flink 的状态具有良好的容错性,通过 checkpoint 机制,Flink 可以对作业的状态和计算位置进行恢复。
Checkpoint 对于用户层面,是透明的,用户会感觉程序一直在运行。 用户无法对其进行交互,用户可以在程序启动之前,设置好实时程序 Checkpoint 相关参数,当程序启动之后,剩下的就全交给 Flink 自行管理。
(1)checkpoint的目录结构: 由元数据文件、数据文件(与 state backend 相关)组成。可通过配置文件中 “state.checkpoints.dir” 配置项来指定元数据文件和数据文件的存储路径,实际系统中一般存储在hdfs上。
(2)checkpoint的两种mode:Exactly Once 和 At least Once。默认的 Checkpoint 模式是 Exactly Once. Exactly Once 和 At least Once 具体是针对 Flink 状态 而言。

  • Exactly Once 含义是:保证每条数据对于 Flink 的状态结果只影响一次。打个比方,比如:在统计"flink"这个单词数时,目前实时统计的 个数为2,同时这个结果在这次 Checkpoint 成功后保存在相应的存储路径下。在下次 Checkpoint 之前, 又来1个"flink"单词,突然程序遇到外部异常容错自动回复,从最近的Checkpoint 点开始恢复,那么会从单词书为2这个状态开始恢复,所以即使程序遇到外部异常自我恢复
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

永远不要矫情

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

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

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

打赏作者

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

抵扣说明:

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

余额充值