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

flink作业能自动从sp中恢复任务吗?还是说必须手动指定-s来恢复

flink作业能自动从sp中恢复任务吗?还是说必须手动指定-s来恢复

展开
收起
真的很搞笑 2023-07-25 20:27:30 86 0
3 条回答
写回答
取消 提交回答
  • 北京阿里云ACE会长

    在 Flink 中,可以通过设置 StateBackend 来实现作业的状态持久化。StateBackend 可以将作业的状态保存到可靠的存储系统中,例如文件系统、HDFS、RocksDB 等。当作业出现故障时,可以从 StateBackend 中恢复作业的状态,从而实现作业的自动恢复。
    如果您使用的是 Flink 的默认状态后端,即 MemoryStateBackend,那么作业的状态只会保存在内存中,如果作业出现故障,状态将会丢失,无法自动恢复。因此,建议使用可靠的状态后端来保存作业的状态,以实现自动恢复。
    需要注意的是,如果您使用的是可靠的状态后端,例如 RocksDBStateBackend,那么可以实现作业的自动恢复。在这种情况下,当作业出现故障时,Flink 会自动从状态后端中恢复作业的状态,并继续执行作业。此时,您不需要手动指定 -s 参数来恢复作业。

    2023-07-29 18:27:46
    赞同 展开评论 打赏
  • Flink 作业可以使用 Savepoint(保存点)来进行任务的恢复,但是需要手动指定保存点来实现。Flink 的自动重启机制是基于 Checkpoint(检查点)来实现的,而不是 Savepoint。

    Checkpoint 是 Flink 的故障容错机制,用于在作业执行过程中周期性地将状态快照写入持久化存储。当作业失败时,Flink 可以使用最近的 Checkpoint 来恢复作业的状态,并从故障发生之前的状态继续执行。

    Savepoint 是一种手动触发的状态快照,它可以在任意时间点创建。与 Checkpoint 不同,Savepoint 允许您在作业执行过程中显式地保存整个应用程序的状态,并且可以在稍后的时间点使用该状态来恢复作业。通过保存点,您可以实现更精确的控制和管理作业的状态。

    因此,要从 Savepoint 中恢复任务,您需要手动指定保存点的位置(使用 -s 参数),并在启动作业时提供相应的保存点路径。Flink 将加载保存点并使用其中的状态来恢复作业。这样,作业将从保存点所代表的状态开始执行。

    总结而言,Flink 作业可以通过手动指定保存点来实现任务的恢复。自动重启机制是基于 Checkpoint 来实现的,而不是 Savepoint。保存点提供了更精确的状态控制和管理,通过手动指定保存点路径来进行任务恢复。

    2023-07-29 17:43:48
    赞同 展开评论 打赏
  • 必须手动指定,自动重启走的是ckp,此回答整理自钉群“【③群】Apache Flink China社区”

    2023-07-25 20:33:14
    赞同 展开评论 打赏

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

相关产品

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

    热门文章

    相关电子书

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