我有一个FlinkV1.2设置,在它自己的VM中有1个JobManager,2个TaskManagers。对于上述每个主机,我将状态后端配置为文件系统,并将其指向本地位置( file:///home/ubuntu/Prototype/flink/flink-checkpoints).:state.backend.fs.checkpointdir我已经将parallelism设置为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上,而不存在于另一个上。
我的问题是,如果我想要上述功能,我是否应该在所有任务管理器上为检查点/状态设置相同的位置?
谢谢!
发布于 2017-03-09 07:32:57
您使用的检查点目录需要在组成Flink群集的所有计算机之间共享。通常,这是类似于HDFS或S3的文件系统,但可以是任何共享文件系统。
https://stackoverflow.com/questions/42672579
复制相似问题