Flink的CheckPoint实现原理是什么?

提问者:帅平 问题分类:面试刷题
Flink的CheckPoint实现原理是什么?
1 个回答
つ浅笑嫣然
つ浅笑嫣然
Flink基于Chandy-Lamport算法,会把分布式的每一个节点的状态保存到分布式文件系统里面作为Checkpoint(检查点),​过程大致如下:
1、首先,checkpoint coordinator从数据源端开始注入Checkpoint barriers,barriers将数据流的记录分为进入当前快照的记录和进入下一个快照的记录​每一个barrie 都带有一个快照ID, 同一时间会有多个checkpoint 在同时进行。
2、当source 端接收到barrie 时会立即产生一个快照, 然后将barrie发送到输出端
3、中间operator收到barrie时, 会立即阻塞该channel, channel的数据会被缓存起来,​  直到operator收到所有上游的barrie. 然后operator会立即产生快照,保存当前算子状态,​  然后将barrie广播到下游. 同时释解除对上游channel的阻塞。
4、barries一直向下传播, 直到DAG的末端, sink会将这条流的state handle 汇报给JM的checkpoint coordinator.​  当sink从所有输入流中接受到barrie, JM会返回一个completed checkpoint meta, 然后checkpoint标记为完成, 状态存储到相应的state backend中
发布于:3个月前 (02-06) IP属地:四川省
我来回答