Flink的Checkpoint原理和流程

Flink的Checkpoint原理和流程

Flink的Checkpoint是一种容错恢复机制,用于保证实时程序在遇到异常或机器问题时能够自我恢复。以下是Flink的Checkpoint原理和流程的详细说明:

原理

Flink的Checkpoint机制通过分布式快照算法(Chandy-Lamport算法)实现。JobManager定时触发Checkpoint,通过CheckpointCoordinator向所有Source节点发送触发信号,Source节点向下游广播CheckpointBarrier。下游Task只有在收到所有Input的Barrier后才会执行相应的Checkpoint操作。Task完成状态备份后,会将备份数据的地址(stateHandle)通知给CheckpointCoordinator。最终,CheckpointCoordinator将CheckpointMeta写入到持久化存储中12。

流程

  1. 开启Checkpoint功能 :用户可以在程序启动前设置实时任务Checkpoint相关的参数,如间隔时间和语义等。默认情况下,Flink的Checkpoint功能是关闭的1。
  2. 触发Checkpoint :JobManager中的CheckpointCoordinator定时触发所有Source的SubTask向下游广播CheckpointBarrier1。
  3. Barrier对齐 :下游Task在收到所有Input的Barrier后,开始执行Checkpoint操作。Task处理数据,对齐Barrier,并取最大Barrier发送到下游。同时,进行内存数据刷到磁盘的操作,并调用Task的SnapshotState方法2。
  4. 状态备份 :Task完成状态备份后,将备份数据的地址(stateHandle)通知给CheckpointCoordinator2。
  5. 本地快照 :下游的Sink节点在收集齐上游所有Input的Barrier后,执行本地快照。对于RocksDB增量Checkpoint,首先全量刷数据到磁盘,然后选择未上传的文件进行持久化备份2。
  6. 元数据写入 :CheckpointCoordinator收集所有Task的stateHandle后,将CheckpointMeta写入到持久化存储中,完成一次Checkpoint操作2。
相关推荐
用户36105886261221 小时前
Flink Sliding Window 详解及代码实现:从窗口重叠到状态爆炸防控
大数据·flink
starzy19902 天前
Flink 提交任务源码深度剖析:从CliFrontend到JobMaster的完整提交链路
大数据·flink
starzy19903 天前
Flink Rpc通信源码级详解:从RpcService到动态代理的完整调用链路
大数据·rpc·flink
starzy19904 天前
Flink Akka底层原理深度剖析:从ActorSystem到Dispatcher调度器的底层实现
大数据·flink
nvd114 天前
# 从 192 秒到 13 秒:Apache Flink 批处理极速调优实战记录
大数据·flink·apache
starzy19905 天前
Flink 优化之网络缓存优化及参数详解:从数据传输机制到反压原理的生产调优指南
网络·缓存·flink
智码看视界6 天前
Edge AI 全栈实战 ④:向量数据库 + RAG 让 IoT 诊断拥有“记忆“
flink·向量数据库·rag·全栈开发·edgeai·iot诊断
starzy19907 天前
Flink 优化之 CheckPoint 优化及参数详解:从原理到生产环境调优的完整指南
大数据·flink
nvd117 天前
深入解构 Flink FLIP-27 数据摄取内核:从 env.execute() 到工业级 Source 运行机制
大数据·flink
nvd118 天前
Flink 极简入门与零常驻批处理架构实战:从双模式辨析到 GitOps 通用模具治理
大数据·架构·flink