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
相关推荐
Faith_xzc11 小时前
一条 SQL 顶一条 Flink 链路?Doris Streaming Job 持续导入全景解析
大数据·数据库·sql·flink
何升曜3 天前
Flink Slot 分配机制深度解析:从申请到部署的完整链路
flink
我变秃了也没变强4 天前
standalone模式部署flink集群
flink·apache
渣渣盟4 天前
Flink 流式写入文件终极指南:从 Row Format 到 Bucket 分区的深度剖析
大数据·flink
CIO_Alliance4 天前
AI算法系列(3)| 实时数据管道:CDC+Flink实现库存异动秒级响应
大数据·人工智能·flink
渣渣盟5 天前
Flink 写入 Redis 实战:数据模型选型、连接池调优与常见坑
大数据·redis·flink
渣渣盟6 天前
Flink + Kafka 数据写入实战:从API调用到端到端一致性精讲
flink·kafka·linq
TDengine (老段)10 天前
TDengine 第三方工具 — Telegraf、Kafka Connect、Flink、Spark
大数据·数据库·物联网·flink·kafka·时序数据库·tdengine
头茬韭菜11 天前
第 4 篇:「Fluss + Flink 集成实战」—— Catalog、Source 与 Sink
大数据·python·flink·fluss
阿里云大数据AI技术13 天前
官宣|Apache Fluss 毕业成为顶级项目,湖流一体开启 Agentic Lake 全面实时化时代
人工智能·flink