Apache Flink不删除旧检查点

时间:2017-07-05 14:11:02

标签: apache-flink flink-streaming

我有一个非常简单的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将前三个检查点标记为“已丢弃”。

我是否配置了错误或是预期的行为?

1 个答案:

答案 0 :(得分:3)

删除由作业管理器完成,可能无法访问您的文件(在/ root中)