0

我有一个 Flink v1.2 设置,有 1 个 JobManager,2 个 TaskManager,每个都在它自己的 VM 中。我将状态后端配置为文件系统,并在上述每个主机的情况下将其指向本地位置(state.backend.fs.checkpointdir:file:///home/ubuntu/Prototype/flink/flink-checkpoints)。我已将并行度设置为 1,每个任务管理器都有 1 个插槽。然后我在 JobManager 上运行一个事件处理作业,将其分配给 TaskManager。我杀死了运行作业的 TaskManager,在失败的 TaskManager 上尝试了几次失败后,Flink 尝试在剩余的 TaskManager 上运行作业。此时它再次失败,因为它找不到相应的检查点/状态:java.io.FileNotFoundException:

文件夹 /home/ubuntu/Prototype/flink/flink-checkpoints/56c409681baeaf205bc1ba6cbe9f8091 仅存在于我杀死的 TaskManager 而不是另一个。

我的问题是,如果我想要上述功能,是否应该在所有任务管理器上为检查点/状态设置相同的位置?

谢谢!

4

1 回答 1

0

您使用的检查点目录需要在构成 Flink 集群的所有机器之间共享。通常这类似于 HDFS 或 S3,但可以是任何共享文件系统。

于 2017-03-08T23:32:56.933 回答