You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flink 1.15.0取消作业时保留Checkpoint:存储与目录配置差异咨询

Flink中Checkpoint目录与Checkpoint存储的区别

1. 抽象层级与职责差异

  • Checkpoint存储(CheckpointStorage):是Flink管理Checkpoint持久化的顶层抽象,负责处理Checkpoint元数据(标记Checkpoint状态的文件)和状态数据(算子快照文件等)的存储、读取、清理全流程。它支持多种实现,比如仅适合测试场景的JobManagerCheckpointStorage,以及生产环境常用的FileSystemCheckpointStorage(基于HDFS/S3等分布式文件系统)。调用env.getCheckpointConfig().setCheckpointStorage("路径"),本质是指定使用FileSystemCheckpointStorage并设置其基础存储路径。
  • Checkpoint目录(CheckpointingOptions.CHECKPOINTS_DIRECTORY):是FileSystemCheckpointStorage专属的细粒度配置项,仅用来指定状态数据文件的存储位置,属于Checkpoint存储实现下的子配置。

2. 管理的存储内容区分

  • 当你只调用setCheckpointStorage("hdfs:///checkpoints-data/")时:
    Checkpoint的元数据文件(例如_checkpoint_xxx格式的标记文件)会直接存放在这个基础路径下,状态数据文件默认也会存放在该路径的子目录中,两者存储位置关联。
  • 当你额外配置CHECKPOINTS_DIRECTORY后:
    状态数据文件会被转移到这个指定目录单独存储,而元数据文件仍然保留在CheckpointStorage设置的基础路径下,实现元数据和状态数据的存储分离。

3. 配置生效条件与优先级

  • setCheckpointStorage()属于代码层面的直接指定,优先级高于配置文件中的对应项,且必须先指定有效的Checkpoint存储实现,CHECKPOINTS_DIRECTORY才会生效;
  • CHECKPOINTS_DIRECTORY仅对FileSystemCheckpointStorage生效,对其他类型的Checkpoint存储(比如JobManager存储)无意义。

针对你的场景建议

你要实现取消作业时保留Checkpoint,两种配置方式可以按需选择:

  • 如果不需要分离元数据和状态数据,直接调用setCheckpointStorage("hdfs:///checkpoints-data/")即可,无需额外配置CHECKPOINTS_DIRECTORY;
  • 如果需要将状态数据和元数据存到不同位置,再通过config.set(CheckpointingOptions.CHECKPOINTS_DIRECTORY, "...")指定状态数据的存储目录。

内容的提问来源于stack exchange,提问作者Vin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 07:30:47