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

Apache Flink默认情况下检查点存储在什么位置?

关于Flink检查点默认存储位置的解答

嗨!作为Flink新手能关注到检查点的存储细节,这真的很不错👍

首先直接回答你的问题:Flink默认使用MemoryStateBackend,将检查点数据存储在JobManager的堆内存中。

补充说明:

  • 这个默认配置仅适合状态量很小的测试作业或者演示场景,因为检查点数据存在JobManager的内存里,一旦JobManager进程重启或者崩溃,这些检查点数据就会丢失,无法用于故障恢复。
  • 如果你的作业有较大的状态,或者需要在生产环境中保证检查点的可靠性,建议配置更合适的状态后端,比如:
    • FileSystemStateBackend:将检查点存储到分布式文件系统(如HDFS、S3等)
    • RocksDBStateBackend:将状态存储到本地RocksDB(适合超大状态场景,支持增量检查点)

举个简单的配置示例(用于替换默认的MemoryStateBackend):

// 配置FileSystemStateBackend
env.setStateBackend(new FileSystemStateBackend("hdfs://your-cluster/checkpoints/"));

// 或者配置RocksDBStateBackend
env.setStateBackend(new RocksDBStateBackend("hdfs://your-cluster/checkpoints/", true));

你之前写的开启检查点的代码是完全没问题的:

StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment(); 
env.enableCheckpointing(10000L); 

这段代码开启了每10秒执行一次检查点,但由于没有指定状态后端,所以会默认使用JobManager堆内存来存储检查点数据。

希望这个解答能帮到你!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 09:22:22