Flink CheckPoint详细过程

Checkpoint由JM的Checkpoint Coordinator发起

第一步,Checkpoint Coordinator 向所有 source 节点 trigger Checkpoint。

在这里插入图片描述

第二步,source 节点向下游广播 barrier,这个 barrier 就是实现 Chandy-Lamport 分布式快照算法的核心,下游的 task 只有收到所有上游 input 的 barrier 才会执行相应的 Checkpoint。 在这里插入图片描述

第三步,当 task 完成 state 备份后,会将备份数据的地址(state handle)通知给 Checkpoint coordinator。

在这里插入图片描述

这里分为同步和异步(如果开启的话)两个阶段:

1.同步阶段:task执行状态快照,并写入外部存储系统(根据状态后端的选择不同有所区别) 执行快照的过程:

a.对state做深拷贝。

b.将写操作封装在异步的FutureTask中 FutureTask的作用包括:

     1)打开输入流

     2)写入状态的元数据信息

     3)写入状态

     4)关闭输入流

2.异步阶段: 1)执行同步阶段创建的FutureTask 2)向Checkpoint Coordinator发送ACK响应

 

第四步,下游的 sink 节点收集齐上游两个 input 的 barrier 之后,会执行本地快照,这里特地展示了 RocksDB incremental Checkpoint 的流程,首先 RocksDB 会全量刷数据到磁盘上(红色大三角表示),然后 Flink 框架会从中选择没有上传的文件进行持久化备份(紫色小三角)。

在这里插入图片描述

同样的,sink 节点在完成自己的 Checkpoint 之后,会将 state handle 返回通知 Coordinator。

在这里插入图片描述

最后,当 Checkpoint coordinator 收集齐所有 task 的 state handle,就认为这一次的 Checkpoint 全局完成了,向持久化存储中再备份一个 Checkpoint meta 文件。 在这里插入图片描述

 

 

转载自:https://blog.csdn.net/weixin_41608066/article/details/105072042

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值