我有一个非常简单的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
(后两个选项是故意评论的,因为我试图取消注释它们并没有改变一件事。)
在代码中我有:
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-”+ index,而我预计旧的检查点将被删除,并且只剩下一个检查点。(从文档中,默认情况下只保留一个检查点)同时,在Web UI中,Flink将前三个检查点标记为“已丢弃”。
我是否配置了错误或是预期的行为?
答案 0 :(得分:3)
删除由作业管理器完成,可能无法访问您的文件(在/ root中)