内容简介:前段时间在社区邮件中看到有人提问是否可以动态开启 Checkpoint,昨天在钉钉群中又看到有个同学在问能够动态调整 Checkpoint 的时间,其实不仅仅是这些,在社区邮件和群里经常看到有问这块内容的问题,所以可以发现在 Flink 中其实关于 Checkpoint 相关的东西还是非常重要且解决起来比较麻烦,估计应该也困扰了不少人。不过今天的话题不是在于去讨论 Checkpoint 的机制,因为前面两个问题都涉及到了动态的去配置 Checkpoint 的参数(是否开启和 Checkpoint 的时间间隔
前段时间在社区邮件中看到有人提问是否可以动态开启 Checkpoint,昨天在钉钉群中又看到有个同学在问能够动态调整 Checkpoint 的时间,其实不仅仅是这些,在社区邮件和群里经常看到有问这块内容的问题,所以可以发现在 Flink 中其实关于 Checkpoint 相关的东西还是非常重要且解决起来比较麻烦,估计应该也困扰了不少人。
不过今天的话题不是在于去讨论 Checkpoint 的机制,因为前面两个问题都涉及到了动态的去配置 Checkpoint 的参数(是否开启和 Checkpoint 的时间间隔),而 zhisheng 我在前面通过两个视频讲解了 Flink 如何与 Apollo 和 Nacos 整合去动态的更改作业配置 ,所以私底下就有同学找我咨询是否可以动态的更改 Checkpoint 配置,我当时因为知道其实有些参数是一旦初始化了之后是改不了的,但是具体什么参数我也不难全部列举,所以只好回答那位同学说:以自己实测的结果为准哈。
所以这里我就给大家演示一下到底是否可以动态的更改 Checkpoint 配置,请看我在 B 站的视频:
https://www.bilibili.com/video/av92655075/
通过这个视频,虽然我是使用 Flink 和 Nacos 整合的,作业监听到了 Checkpoint 的配置做了修改,但是可以发现其实 Checkpoint 更改后其实是不生效的。
这里仅从个人的思考来解释一下:因为 Flink 是 Lazy Evaluation(延迟执行),当程序的 main 方法执行时,我们创建的 env 会依次进行属性的初始化配置,但是数据源加载数据和数据转换等算子不会立马执行,这些算子操作会被创建并添加到程序的执行计划中去,只有当执行环境 env 的 execute 方法被显示地触发执行时,整个程序才开始执行实际的操作(StreamGraph -> JobGraph -> ExecutionGraph),所以在程序执行 execute 方法后再修改 env 的配置其实就不起作用了。
另外给大家来看下 Flink Committer 对能否动态配置 Checkpoint 的回答:
最后
GitHub Flink 学习代码地址: https://github.com/zhisheng17/flink-learning
微信公众号: zhisheng
另外我自己整理了些 Flink 的学习资料,目前已经全部放到微信公众号(zhisheng)了,你可以回复关键字: Flink 即可无条件获取到。另外也可以加我微信 你可以加我的微信: yuanblog_tzs ,探讨技术!
更多私密资料请加入知识星球!
以上所述就是小编给大家介绍的《Flink 能否动态更改 Checkpoint 配置》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- Pulsar 能否超越 Kafka?
- IPFS能否颠覆HTTP协议?
- 黑客能否花式“调戏”人造卫星?
- 面试官问:能否模拟实现bind
- 最新的可逆ICO方案能否再造神话?
- 超融合系统能否受益于SDN架构?
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。