Flink checkpoint流程

① JobMaster 即 CheckpointCoordinator 会定期向每个 source task发送命令 start checkpoint(trigger checkpoint);
② 当 source task 收到 trigger checkpoint 指令后,产生 barrier 并通过广播的方式发送到下游。source task 同时会执行本地 checkpoint n,当 checkpoint n 完成后,向 JobMaster 发送 ack;
③ 当流图的所有节点都完成 checkpoint n,JobMaster 会收到所有节点的 ack,那么就表示完成 checkpoint n;

说明:checkpoint 机制的调用流程实质是 2PC。JobMaster 是协调者,所有operator task 是执行者。start checkpoint 是 pre-commit 的开始信号,而每个 operator task 的 checkpoint 是 pre-commit 过程,ack 是执行者 operator task 反馈给协调者 JobMaster ,最后 callback 是 commit。


标签: checkpoint、jobmaster、task、operator、ack、面试
  • 回复
隐藏