Flink CDC如果中间结果集状态过大几百m的情况下,我设置了官网给出的100次restart-fixed,这时候用的rocksdb后段。我看check point其中有部分成功了部分失败了,那么下次再进行检查点设置时成功的是否为增量检查点,失败的是否是全量检查点?现在非常不稳定,因为checkpoint失败导致的全量数据刷新,如何能做到大状态高可用的检查点?增量检查点如果第一次失败了那么下一次是否是执行上一次的检查点,还是执行当前最新的检查点?就忽略了上次的失败?总检查点展开我可以看到会为每个执行计划生成检查点,如果总检查点失败,但是子检查点部分成功,那么下次总检查点时无需执行成功过的检查点吧
Flink CDC的检查点机制是其实现容错机制的核心功能,通过周期性地基于数据流中各个操作符的状态生成快照,将这些状态数据定期持久化存储下来。这样,当Flink程序因意外崩溃时,可以依靠这些检查点恢复流中的状态和位置,从而提供与无故障执行相同的语义。
对于大状态应用,Flink提供了一些优化策略来保证检查点的可靠性。首先,应用程序需要能够可靠地创建检查点。其次,发生故障后,作业的处理速度要能赶上输入数据流。同时,Flink支持高级的状态后端(State Backends),允许存取海量的状态数据。
关于你的问题:
增量检查点和全量检查点的概念是相对的,取决于上一次成功的检查点和当前状态的差异。如果第一次失败了那么下一次会执行最新的检查点,而不会忽略上次的失败。
如果总检查点失败,但是子检查点部分成功,那么下次总检查点时无需执行成功过的检查点。
关于RocksDB后端的使用,你提到有些检查点成功了有些失败了,这可能与配置有关。你可以尝试调整相关参数以优化结果。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。