Apache flink TaskManager的Flink状态后端

Apache flink TaskManager的Flink状态后端,apache-flink,flink-streaming,flink-cep,Apache Flink,Flink Streaming,Flink Cep,我有一个Flink v1.2设置,在它自己的VM中有1个JobManager和2个TaskManager。我将状态后端配置为文件系统,并在上述每个主机的情况下将其指向本地位置(state.backend.fs.checkpointdir:file:///home/ubuntu/Prototype/flink/flink-checkpoints). 我已将parallelism设置为1,每个TaskManager有1个插槽。 然后,我在JobManager上运行一个事件处理作业,将其分配给Task

我有一个Flink v1.2设置,在它自己的VM中有1个JobManager和2个TaskManager。我将状态后端配置为文件系统,并在上述每个主机的情况下将其指向本地位置(state.backend.fs.checkpointdir:file:///home/ubuntu/Prototype/flink/flink-checkpoints). 我已将parallelism设置为1,每个TaskManager有1个插槽。 然后,我在JobManager上运行一个事件处理作业,将其分配给TaskManager。 我杀死了运行作业的TaskManager,在失败的TaskManager上尝试了几次失败后,Flink尝试在剩余的TaskManager上运行作业。此时它再次失败,因为它找不到相应的检查点/state:java.io.FileNotFoundException:/home/ubuntu/Prototype/flink/flink检查点/56C409681BAAF205BC1BA6CBE9F8091/chk-14/46f6e71d-ebfe-4b49-bf35-23c2e7f97923(没有这样的文件或目录)

文件夹/home/ubuntu/Prototype/flink/flink checkpoints/56C409681BAEAAF205BC1BA6CBE9F8091只存在于我杀死的TaskManager上,而不存在于另一个TaskManager上

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


谢谢

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

您好,您确定吗?这次进行了另一个测试设置状态。后端:文件系统状态。后端。fs。检查点目录:file:///home/local/flink/flink-checkpoints state.checkpoints.dir:file:///home/home/local/flink/external-checkpoints 在每个作业/TaskManager虚拟机上,如果我在剩余的作业/TaskManager虚拟机上杀死一个TaskManager,它将恢复工作。