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

Flink CDC里 解决办法是不是要设置好对应的重启策略啊?

Flink CDC里就是我这边搭建的flink standolone HA(基于zk + hdfs) 的集群 重启后 上面运行的job信息都会丢失 解决办法是不是要设置好对应的重启策略和checkpoint或者savepoint来实现?

展开
收起
小小鹿鹿鹿 2024-01-18 07:44:59 59 0
3 条回答
写回答
取消 提交回答
  • 是的,你理解得非常正确。在 Apache Flink 中,为了避免集群重启后 job 信息和运行状态丢失,确实需要配置 checkpoint 和 savepoint 功能。以下是详细说明:

    1. Checkpoint: Checkpoint 是 Flink 用于容错和恢复的关键机制。通过定期在分布式存储(如 HDFS、S3 或其他兼容的存储系统)中持久化状态,当 Flink 集群出现故障或重启时,可以从最近一次成功的 checkpoint 快照恢复作业的状态。要在 Flink standalone HA 集群中启用 checkpoint,你需要在 flink-conf.yaml 文件中配置 checkpoint 相关参数,如 checkpoint directory、checkpoint interval 等,并确保 JobManager 和 TaskManager 启动时加载了这些配置。

    2. Savepoint: Savepoint 是手动触发的 snapshot,可以独立于正常的 checkpoint 机制保存和恢复作业状态。在你的场景下,你可以在停止 Flink 作业之前手动触发 savepoint,然后在集群重启后使用该 savepoint 来恢复作业。这样,即使整个集群重启,也可以保持作业状态的一致性。

    所以,为了防止重启后 job 信息和状态丢失,你需要确保以下几点:

    • 启用并配置好 checkpoint 功能;
    • 根据实际情况选择合适的 checkpoint 间隔;
    • 可以考虑设置合理的 restart strategy(如 fixed-delay 策略),以便在失败时自动尝试重启作业并从 checkpoint 恢复;
    • 如有必要,在停机维护前触发 savepoint,以备后续恢复作业状态之需。
    2024-01-29 18:40:54
    赞同 1 展开评论 打赏
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    是的,为了解决Flink CDC中重启后丢失job信息的问题,你可以设置合适的重启策略、checkpoint或savepoint。

    1. 重启策略:在Flink配置文件(flink-conf.yaml)中,可以设置taskmanager.restart.strategy参数来指定重启策略。常见的策略有:

      • fixeddelay:固定延迟重启,即每次重启之间的等待时间固定。
      • fixeddelaywithbackoff:带退避策略的固定延迟重启,即每次重启之间的等待时间会逐渐增加。
      • norestart:不进行重启。
    2. Checkpoint和Savepoint:在Flink作业中,可以使用Checkpoint和Savepoint来保存作业的状态。Checkpoint会在指定的时间间隔内将作业状态保存到外部存储系统中,而Savepoint则会将作业状态保存到内部状态管理系统中。通过设置合适的Checkpoint和Savepoint策略,可以在重启后恢复作业状态,避免丢失job信息。

    以下是一个示例配置,展示了如何设置重启策略和Checkpoint:

    # 设置重启策略为带退避策略的固定延迟重启
    taskmanager.restart.strategy: fixeddelaywithbackoff
    
    # 设置Checkpoint的触发条件和超时时间
    execution.checkpointing.mode: exactly-once
    execution.checkpointing.interval: 5000ms
    execution.checkpointing.timeout: 30000ms
    
    # 设置Checkpoint的存储路径
    execution.checkpointing.dir: hdfs:///flink/checkpoints
    
    # 设置Savepoint的触发条件和超时时间
    execution.savepoint.trigger: manual
    execution.savepoint.timeout: 30000ms
    
    # 设置Savepoint的存储路径
    execution.savepoint.dir: hdfs:///flink/savepoints
    

    通过以上配置,你可以在重启后恢复作业状态,避免丢失job信息。

    2024-01-19 15:00:25
    赞同 展开评论 打赏
  • 找个开发平台管理任务我推荐阿里云vvr。此回答来自钉群Flink CDC 社区。

    2024-01-18 11:01:41
    赞同 展开评论 打赏

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

相关产品

  • 实时计算 Flink版
  • 热门讨论

    热门文章

    相关电子书

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