开发者社区 > 大数据与机器学习 > 实时计算 Flink > 正文

Flink CDC如果中间结果集状态过大几百m的情况下,失败的是否是全量检查点?

Flink CDC如果中间结果集状态过大几百m的情况下,我设置了官网给出的100次restart-fixed,这时候用的rocksdb后段。我看check point其中有部分成功了部分失败了,那么下次再进行检查点设置时成功的是否为增量检查点,失败的是否是全量检查点?现在非常不稳定,因为checkpoint失败导致的全量数据刷新,如何能做到大状态高可用的检查点?增量检查点如果第一次失败了那么下一次是否是执行上一次的检查点,还是执行当前最新的检查点?就忽略了上次的失败?总检查点展开我可以看到会为每个执行计划生成检查点,如果总检查点失败,但是子检查点部分成功,那么下次总检查点时无需执行成功过的检查点吧

展开
收起
真的很搞笑 2023-12-05 20:36:49 25 0
1 条回答
写回答
取消 提交回答
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    Flink CDC的检查点机制是其实现容错机制的核心功能,通过周期性地基于数据流中各个操作符的状态生成快照,将这些状态数据定期持久化存储下来。这样,当Flink程序因意外崩溃时,可以依靠这些检查点恢复流中的状态和位置,从而提供与无故障执行相同的语义。

    对于大状态应用,Flink提供了一些优化策略来保证检查点的可靠性。首先,应用程序需要能够可靠地创建检查点。其次,发生故障后,作业的处理速度要能赶上输入数据流。同时,Flink支持高级的状态后端(State Backends),允许存取海量的状态数据。

    关于你的问题:

    1. 增量检查点和全量检查点的概念是相对的,取决于上一次成功的检查点和当前状态的差异。如果第一次失败了那么下一次会执行最新的检查点,而不会忽略上次的失败。

    2. 如果总检查点失败,但是子检查点部分成功,那么下次总检查点时无需执行成功过的检查点。

    3. 关于RocksDB后端的使用,你提到有些检查点成功了有些失败了,这可能与配置有关。你可以尝试调整相关参数以优化结果。

    2023-12-06 14:40:25
    赞同 展开评论 打赏

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

相关产品

  • 实时计算 Flink版
  • 相关电子书

    更多
    Flink CDC Meetup PPT - 龚中强 立即下载
    Flink CDC Meetup PPT - 王赫 立即下载
    Flink CDC Meetup PPT - 覃立辉 立即下载