当前位置:网站首页>flink中checkpoint机制随笔
flink中checkpoint机制随笔
2022-04-21 19:41:00 【PONY LEE】
CheckPoint 执行过程:
- JobManager 端的 CheckPointCoordinator 向所有 SourceTask 发送 CheckPointTrigger,Source Task 会在数据流中安插 CheckPoint barrier。
- 当 task 收到所有的 barrier 后,向自己的下游继续传递 barrier,然后自身执行快照,并将自己的状态异步写入到持久化存储中。
增量 CheckPoint 只是把最新的一部分更新写入到 外部存储;
为了下游尽快做 CheckPoint,所以会先发送 barrier 到下游,自身再同步进行快照;
- 当 task 完成备份后,会将备份数据的地址(state handle)通知给 JobManager 的 CheckPointCoordinator。
如果 CheckPoint 的持续时长超过了 CheckPoint 设定的超时时间,CheckPointCoordinator 还没有收集完所有的 State Handle,CheckPointCoordinator 就会认为本次 CheckPoint 失败,会把这次 CheckPoint 产生的所有状态数据全部删除。
- 最后 CheckPointCoordinator 会把整个 StateHandle 封装成 completed CheckPoint Meta,写入到 hdfs。
flink中检查点根据是否在barrier对齐做checkpoint
分对齐检查点和非对齐检查点(flink1.11版本引入),区别如下:
-
对齐检查点在最后一个屏障到达算子时触发,非对齐检查点在第一个屏障到达算子时就触发。
-
对齐检查点在第一个屏障到最后一个屏障到达的区间内是阻塞的,而非对齐检查点不需要阻塞。
-
对齐检查点能够保持快照N~N + 1之间的边界,但非对齐检查点模糊了这个边界。
非对齐检查点的特点:
-
当任务从非对齐检查点恢复时,除了对齐检查点也会涉及到的Source端重放和算子的计算状态恢复之外,未对齐的流数据也会被恢复到各个链路,三者合并起来来保证exactly once的完整现场
-
需要额外的恢复数据流现场,总的状态大小可能会有比较明显的膨胀,磁盘压力大;从状态恢复时也需要额外恢复数据流的现场,作业重新拉起的耗时可能会很长,容易失败。
flink对齐检查点又根据是否在barrier对齐才下发数据来支持 Exactly Once(对齐下发) 和 At Least Once(非对齐下发),而非对齐检查点只支持 Exactly Once。
总结:
- 非对齐检查点:官方推荐将它应用于那些容易产生反压且I/O压力较小的场景
- 对齐检查点的At Least Once方式: 应用于可以容忍重复数据或者在业务逻辑保证幂等性的场景,且能有效的减少反压
- 对齐检查点的Exactly Once方式:除以上场景,绝大多数的业务适用此场景
参考:
全面讲解Flink中CheckPoint机制和Exactly Once / At Least Once应用
Flink新特性之非对齐检查点(unaligned checkpoint)简介
版权声明
本文为[PONY LEE]所创,转载请带上原文链接,感谢
https://blog.csdn.net/weixin_38251332/article/details/124301729
边栏推荐
猜你喜欢
随机推荐
如何让Join跑的更快?(文末送书)
MKL library matrix multiplication
【Gradle】问题解析+下载安装+环境配置+验证安装
R语言数据分析从入门到高级:(八)数据清洗技巧之数据格式转换(包含宽数据与长数据之间的转换)
Automatic control principle Chapter 5 - frequency method (mind map)
[netty] is it difficult to implement a redis client by yourself?
vtkjs介绍
杰理之系统内核电压【篇】
码出高效 第七章 并发与多线程
到底什么是外包?
Interviewer: a brief talk about go escape analysis?
Distributed transaction Foundation
MySQL (III) index optimization and case analysis
线程
杰理之复位IO维持电平使用说明【篇】
若依集成actuator实现优雅关闭应用
[leetcode] daily question: goat Latin
5.1 overview of triggers in fundamentals of digital electronic technology
使用CMake构建/在命令行上构建项目
pfSense使用证书认证配置IPsec站点到站点隧道指南









