Apache Flink 不删除旧的检查点
Apache Flink not deleting old checkpoints
我有一个非常简单的 4 节点 Flink 集群设置,其中一个节点是 Jobmanager,其他节点是 Taskmanagers,并由 start-cluster 脚本启动。
所有任务管理器都具有相同的配置,关于状态和检查点如下:
state.backend: rocksdb
state.backend.fs.checkpointdir: file:///root/flink-1.3.1/checkpoints/fs
state.backend.rocksdb.checkpointdir: file:///root/flink-1.3.1/checkpoints/rocksdb
# state.checkpoints.dir: file:///root/flink-1.3.1/checkpoints/metadata
# state.checkpoints.num-retained: 2
(后 2 个选项是有意注释的,因为我尝试取消对它们的注释,但它并没有改变任何东西。)
在代码中我有:
val streamEnv = StreamExecutionEnvironment.getExecutionEnvironment
streamEnv.enableCheckpointing(10.minutes.toMillis)
streamEnv.getCheckpointConfig.setCheckpointTimeout(1.minute.toMillis)
streamEnv.getCheckpointConfig.setMaxConcurrentCheckpoints(1)
作业运行 40 分钟后,在目录
/root/flink-1.3.1/checkpoints/fs/.../
我看到 4 个检查点目录,名称模式为 "chk-" + 索引,而我预计旧的检查点将被删除,只剩下一个检查点。(从文档中,默认情况下只有一个检查点应该被保留)同时,在 web UI 中,Flink 将前三个检查点标记为 "discarded".
我是不是配置有误或者这是预期的行为?
删除是由作业管理器完成的,它可能无法访问您的文件(在 /root 中)
我有一个非常简单的 4 节点 Flink 集群设置,其中一个节点是 Jobmanager,其他节点是 Taskmanagers,并由 start-cluster 脚本启动。 所有任务管理器都具有相同的配置,关于状态和检查点如下:
state.backend: rocksdb
state.backend.fs.checkpointdir: file:///root/flink-1.3.1/checkpoints/fs
state.backend.rocksdb.checkpointdir: file:///root/flink-1.3.1/checkpoints/rocksdb
# state.checkpoints.dir: file:///root/flink-1.3.1/checkpoints/metadata
# state.checkpoints.num-retained: 2
(后 2 个选项是有意注释的,因为我尝试取消对它们的注释,但它并没有改变任何东西。)
在代码中我有:
val streamEnv = StreamExecutionEnvironment.getExecutionEnvironment
streamEnv.enableCheckpointing(10.minutes.toMillis)
streamEnv.getCheckpointConfig.setCheckpointTimeout(1.minute.toMillis)
streamEnv.getCheckpointConfig.setMaxConcurrentCheckpoints(1)
作业运行 40 分钟后,在目录
/root/flink-1.3.1/checkpoints/fs/.../
我看到 4 个检查点目录,名称模式为 "chk-" + 索引,而我预计旧的检查点将被删除,只剩下一个检查点。(从文档中,默认情况下只有一个检查点应该被保留)同时,在 web UI 中,Flink 将前三个检查点标记为 "discarded".
我是不是配置有误或者这是预期的行为?
删除是由作业管理器完成的,它可能无法访问您的文件(在 /root 中)