Flink的四大基石之---Checkpoint详解

1- 容错机制Checkpoint检查点理解
  • 首先状态State与检查点Checkpoint之间关系:Checkpoint将某个时刻应用状态State进行快照Snapshot保存
    在这里插入图片描述
    1)、State:维护/存储的是某一个Operator的运行的状态/历史值,是维护在内存中。
    在这里插入图片描述

2)、Checkpoint:某一时刻,Flink中所有的Operator的当前State的全局快照,一般存在磁盘上。
在这里插入图片描述

  • Flink中的Checkpoint底层使用了Chandy-Lamport algorithm分布式快照算法,可以保证数据的在分布式环境下的一致性。

网站:https://zhuanlan.zhihu.com/p/53482103

2- Checkpoint 执行流程(简易版)
  • Flink Checkpoint进行检查点Checkpoint时,执行流程,先看简易版描述。
  • barrier栅栏,相当于标识符,表示对应用中各个OperatorState进行快照时,到哪个位置
    在这里插入图片描述
- 1)、Flink的`JobManager`创建`CheckpointCoordinator`
- 2)、Coordinator向所有的`SourceOperator`发送Barrier栅栏(理解为执行Checkpoint的信号)
- 3)、SourceOperator接收到Barrier之后,暂停当前的操作(暂停的时间很短,因为后续的写快照是异步的),并制作State快照, 然后将自己的快照保存到指定的介质中(如HDFS), 一切 ok之后向Coordinator汇报并将Barrier发送给下游的其他Operator;
- 4)、其他的如TransformationOperator接收到Barrier,重复第2步,最后将Barrier发送给Sink;
- 5)、Sink接收到Barrier之后重复第2步;
- 6)、Coordinator接收到所有的Operator的执行ok的汇报结果,认为本次快照执行成功;
3- Checkpoint 执行流程(复杂版)

具体看一下Flink Checkpoint时详细版执行流程:

	下图左侧是 Checkpoint Coordinator,是整个 Checkpoint的发起者,中间是由两个 
source,一个 sink 组成的Flink作业,最右侧的是持久化存储,在大部分用户场景中
对应 HDFS

1)、Checkpoint Coordinator 向所有 source 节点 trigger Checkpoint
在这里插入图片描述
2)、source 节点向下游广播 barrier,这个 barrier 就是实现 Chandy-Lamport 分布式快照算法的核心,下游的 task 只有收到所有 input 的 barrier 才会执行相应的 Checkpoint
在这里插入图片描述
3)、当 task 完成 state 备份后,会将备份数据的地址(state handle)通知给 Checkpointcoordinator
在这里插入图片描述
4)、下游的 sink 节点收集齐上游两个 input 的 barrier 之后,会执行本地快照,(栅栏对齐)
在这里插入图片描述
展示了 RocksDB incremental Checkpoint (增量Checkpoint)的流程,首先 RocksDB 会全量刷数据到磁盘上(红色大三角表示),然后 Flink 框架会从中选择没有上传的文件进行持久化备份(紫色小三角)。

5)、同样的,sink 节点在完成自己的 Checkpoint 之后,会将 state handle 返回通知Coordinator
在这里插入图片描述
6)、最后,当 Checkpoint coordinator 收集齐所有 task 的 state handle,就认为这一次的Checkpoint 全局完成了,向持久化存储中再备份一个 Checkpoint meta 文件。
在这里插入图片描述
下游Operator进行Checkpoint时,必须要收集到上游所有Task发送过来Barrier栅栏信号(栅栏对齐)。
在这里插入图片描述

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值