美文网首页Flink学习指南
Flink CheckPoint详细过程

Flink CheckPoint详细过程

作者: 〇白衣卿相〇 | 来源:发表于2020-05-20 13:26 被阅读0次

    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 文件。
    在这里插入图片描述

    相关文章

      网友评论

        本文标题:Flink CheckPoint详细过程

        本文链接:https://www.haomeiwen.com/subject/vpggohtx.html