計(jì)算引擎-Flink

參考:https://mp.weixin.qq.com/s/RUS9w-bGan6fDcF9CVqvFw
checkpoint
1.Checkpoint Coordinator 向所有 source 節(jié)點(diǎn) trigger Checkpoint. 然后Source Task會(huì)在數(shù)據(jù)流中安插CheckPoint barrier
Job Manager 對(duì)每一個(gè)job都會(huì)產(chǎn)生一個(gè)Checkpoint Coordinator 向所有 source 節(jié)點(diǎn) 觸發(fā) trigger Checkpoint節(jié)點(diǎn), 并行度是幾,就會(huì)觸發(fā)多少個(gè)。source 會(huì)向流中觸發(fā)Barrier,接收到Barrier的節(jié)點(diǎn)就會(huì)保存快照(包括source)。
2.source 節(jié)點(diǎn)向下游廣播 barrier,這個(gè) barrier 就是實(shí)現(xiàn) Chandy-Lamport 分布式快照算法的核心, 下游的 task 只有收到所有進(jìn)來的 barrier 才會(huì)執(zhí)行相應(yīng)的 Checkpoint(barrier對(duì)齊) 注意:新版本有一種新非對(duì)齊barrier
3.source先收到barrier,然后往后傳遞,若是多并行度,相當(dāng)于多組接力賽跑比賽,所以順序是不一致的,并不是同步。
4.下游的 sink 節(jié)點(diǎn)收集齊上游兩個(gè) input 的 barrier 之后,會(huì)執(zhí)行本地快照。
5.同樣的,sink 節(jié)點(diǎn)在完成自己的 Checkpoint 之后,會(huì)將 state handle 返回通知 Coordinator。
6.最后,當(dāng) Checkpoint coordinator 收集齊所有 task 的 state handle,就認(rèn)為這一次的 Checkpoint 全局完成了,向持久化存儲(chǔ)中再備份一個(gè) Checkpoint meta 文件。

浙公網(wǎng)安備 33010602011771號(hào)