返回介绍

检查点

发布于 2025-05-02 18:19:19 字数 1776 浏览 0 评论 0 收藏

概览

检查点通过允许恢复状态和相应的流位置使 Flink 中的状态容错,从而为应用程序提供与无故障执行相同的语义。

有关如何为程序启用和配置检查点的信息,请参阅 检查 点。

保存检查点

默认情况下,检查点不会保存,仅用于从失败中恢复作业。取消程序时会删除它们。但是,您可以配置要保存的定期检查点。根据配置 ,当作业失败或取消时, 不会 自动清除这些 保存的 检查点。这样,如果您的工作失败,您将有一个检查点可以从中恢复。

CheckpointConfig config = env.getCheckpointConfig();
config.enableExternalizedCheckpoints(ExternalizedCheckpointCleanup.RETAIN_ON_CANCELLATION);

ExternalizedCheckpointCleanup 模式配置取消作业时检查点发生的情况:

  • ExternalizedCheckpointCleanup.RETAIN_ON_CANCELLATION :取消作业时保存检查点。请注意,在这种情况下,您必须在取消后手动清理检查点状态。
  • ExternalizedCheckpointCleanup.DELETE_ON_CANCELLATION :取消作业时删除检查点。只有在作业失败时,检查点状态才可用。

目录结构

与 保存点 类似,检查点由元数据文件和一些其他数据文件组成,具体取决于状态后台。元数据文件和数据文件存储在 state.checkpoints.dir 配置文件中配置的目录中,也可以为代码中的每个作业指定。

通过配置文件全局配置

state.checkpoints.dir: hdfs:///checkpoints/

在构造状态后台时为每个作业配置

env.setStateBackend(new RocksDBStateBackend("hdfs:///checkpoints-data/");

保存点的差异

检查点与 保存 点有一些差异。他们

  • 使用状态后台特定(低级)数据格式,可以是增量式的。
  • 不支持 Flink 特定函数,如重新缩放。

从保存的检查点恢复

通过使用检查点的元数据文件,可以从检查点恢复作业,就像从保存 点恢复一样 (请参阅 保存点恢复指南 )。请注意,如果元数据文件不是自包含的,则 JobManager 需要访问它所引用的数据文件(请参阅 上面的 目录结构 )。

$ bin/flink run -s :checkpointMetaDataPath [:runArgs]

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。