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

请问flinc cdc 中我cdc开启checkpoints之后任务如果出错自动重启是什么原因?

请问flinc cdc 中我cdc开启checkpoints之后任务如果出错自动重启时报错说snapshot.mode要设置成when_needed,我设置成when_needed以后 任务可以从checkpoint启动,但是不能直接 flink run xxx.jar启动,这是不是我哪里用错了啊?

展开
收起
十一0204 2023-07-19 18:38:22 95 0
2 条回答
写回答
取消 提交回答
  • 北京阿里云ACE会长

    在 Flink CDC 中,如果启用了 Checkpoint,当任务发生故障或异常时,Flink 会自动重启任务以恢复故障。这是因为 Checkpoint 可以将任务的状态进行定期保存,以便在任务发生故障时可以快速恢复任务的状态,从而避免数据丢失和任务重启后的重复计算。
    具体而言,当启用 Checkpoint 后,Flink 会定期将任务的状态进行清点,并将状态保存到可靠的存储介质中(例如 HDFS、S3 等)。如果任务发生故障或异常,Flink 可以使用最近一次 Checkpoint 的状态来恢复任务的状态,并从 Checkpoint 处继续进行数据处理,从而避免数据丢失和任务重启后的重复计算。
    需要注意的是,如果任务在重启后仍然无法正常运行,则可能需要进一步调查故障原因并进行相应的修复。例如,可能需要检查任务的代码实现

    2023-07-29 19:21:30
    赞同 展开评论 打赏
  • 存在即是合理

    在 Flink CDC 中开启 checkpoints 之后,任务如果出错自动重启时报错说 snapshot.mode 要设置成 when_needed,这是因为 Flink CDC 在执行 checkpoint 时,需要对数据进行一次快照。如果将 snapshot.mode 设置为 when_needed,则表示只有在需要时才会进行快照。这样可以减少不必要的快照,提高效率。

    如设置成 when_needed 以后,任务可以从 checkpoint 启动,但是不能直接 flink run xxx.jar 启动,这可能是配置问题, checkpoint 相关的参数。请检查代码并确保所有相关参数都正确配置。

    2023-07-25 11:27:29
    赞同 展开评论 打赏

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

热门讨论

热门文章

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载