Flink的Checkpointing机制

Flink的Checkpointing机制用于容错,确保有状态的functions的持久化和恢复。要启用检查点,需设置检查点间隔并选择状态后端如HDFS。检查点与数据source的持久化和状态存储交互,支持exactly-once或at-least-once语义。对于迭代作业,检查点需特殊设置,而重启策略控制故障后的作业恢复方式。

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

目录

先决条件

启用和配置检查点

选择状态的后端存储(State Backend)

迭代式作业中的状态检查点(State Checkpoints in Iterative Jobs)

重启策略(Restart Strategies)


Flink中的每个function和operator都可以是有状态的(有关详细信息请参阅有状态的运行)。有状态的functions通过处理各个元素/事件来存储数据,并把状态作为关键构建以支持任何类型更复杂的操作。

为了使状态能够容错,Flink需要状态的检查点。Flink通过检查点恢复流中的状态和位置,进而使得应用程序与无故障执行具有相同的语义。

关于流容错的文档 详细介绍了Flink流容错机制的技术。

先决条件

Flink的检查点机制与流和状态的持久化存储交互,一般来说该机制需要:

  • 持久化的数据source,它可以在一定时间内重放事件。这种数据sources的典型例子是持久化的消息队列(比如Apache Kafka,RabbitMQ,Amazon Kinesis,Google PubSub)或文件系统(比如HDFS,S3,GFS,NFS&#x
SavePoint Savepoint 作为实时任务的全局镜像,其在底层使用的代码和Checkpoint的代码是一样的 Savepoint 是依据 Flink checkpointing 机制所创建的流作业执行状态的一致镜像; Checkpoint 的主要目的是为意外失败的作业提供恢复机制(如 tm/jm 进程挂了)。 Checkpoint 的生命周期由 Flink 管理,即 Flink 创建,管理和删除 Checkpoint - 无需用户交 互。 Savepoint 由用户创建,拥有和删除。 他们的用例是计划的,手动备份和恢复。 Savepoint 应用场景,升级 Flink 版本,调整用户逻辑,改变并行度,以及进行红蓝部署等。 Savepoint 更多地关注可移植性 Savepoint触发方式触发方式目前有三种 使用 flink savepoint 命令触发 Savepoint,其是在程序运行期间触发 savepoint。 使用 flink cancel -s 命令,取消作业时,并触发 Savepoint。 使用 Rest API 触发 Savepoint,格式为:*/jobs/:jobid /savepoints* Savepoint注意点 由于 Savepoint 是程序的全局状态,对于某些状态很大的实时任务,当我们触发 Savepoint,可能会对运行着的实时任务产生影响,个人建议如果对于状态过大的实时任务, 触发 Savepoint 的时间,不要太过频繁。根据状态的大小,适当的设置触发时间。 当我们从 Savepoint 进行恢复时,需要检查这次 Savepoint 目录文件是否可用。可能存在你 上次触发 Savepoint 没有成功,导致 HDFS 目录上面 Savepoint 文件不可用或者缺少数据文 件等,这种情况下,如果在指定损坏的 Savepoint 的状态目录进行状态恢复,任务会启动不 起来。。。。怎么记忆。。。
05-18
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

大数据技术派

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

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

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

打赏作者

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

抵扣说明:

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

余额充值