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
相关推荐
juniperhan19 小时前
Flink 系列第15篇:Flink 侧输出(Side Output)详解及实践
java·大数据·分布式·flink
of Watermelon League1 天前
SpringBoot集成Flink-CDC,实现对数据库数据的监听
数据库·spring boot·flink
大大大大晴天️2 天前
Flink技术实践-Flink指标监控全景指南
大数据·flink
csgo打的菜又爱玩2 天前
7.DispatcherResourceManagerComponentFactory解析.md
开发语言·python·flink
juniperhan2 天前
Flink 系列第14篇:Flink Metrics 监控指标详解(生产环境版)
大数据·数据仓库·分布式·flink
努力成为一个程序猿.3 天前
Flink运行时架构
大数据·架构·flink
juniperhan3 天前
Flink 系列第13篇:Flink 生产环境中的并行度与资源配置
java·大数据·数据仓库·分布式·flink
渣渣盟3 天前
Flink事件时间与窗口操作实战指南
大数据·flink·scala
juniperhan4 天前
Flink 系列第12篇:Flink 维表关联详解
大数据·数据仓库·分布式·flink
isNotNullX4 天前
2026年国产数据同步工具对比评测:DataX、Canal、Flink CDC与FineDataLink深度横评
大数据·flink