我有一个Flink v1.2设置,1个JobManager,2个TaskManagers,每个都在自己的VM中。我将状态后端配置到文件系统,并在每个上述主机的情况下将其指向本地位置(state.backend.fs.checkpointdir:file:/// home / ubuntu / Prototype / flink / flink-checkpoints)。我已将并行性设置为1,每个taskanager都有1个插槽。 然后,我在JobManager上运行一个事件处理作业,将其分配给TaskManager。 我终止了运行该作业的TaskManager,并且在失败的尝试失败后,几次失败的TaskManager Flink尝试在剩余的TaskManager上运行作业。此时它再次失败,因为它无法找到相应的检查点/状态:java.io.FileNotFoundException:/ home / ubuntu / Prototype / flink / flink-checkpoints / 56c409681baeaf205bc1ba6cbe9f8091 / chk-14 / 46f6e71d-ebfe-4b49-bf35-23c2e7f97923 (没有这样的文件或目录)
文件夹/ home / ubuntu / Prototype / flink / flink-checkpoints / 56c409681baeaf205bc1ba6cbe9f8091仅存在于我杀死的TaskManager上,而不存在于另一个上。
我的问题是,如果我想要上述功能,我应该为所有任务管理器设置相同的检查点/状态位置吗?
谢谢!
答案 0 :(得分:0)
您使用的检查点目录需要在构成Flink群集的所有计算机之间共享。通常情况下,这可能是HDFS或S3,但可以是任何共享文件系统。