Flink作业/数据流在多个任务管理器上发生故障和恢复

时间:2018-06-15 15:48:07

标签: apache-flink flink-streaming

如果我们有两个任务管理器,每个都在不同的JVM中运行(总是如此),并假设我们在数据流中间有一个运算符失败,通过异常或JVM因故障终止,我们可以假设整个数据流,包括参与该作业/数据流的所有任务管理器的所有源和操作员都将失败并重新启动(如果启用了重启)? 阅读你的文档我理解答案是肯定的,但我想确定。

JVM 1/
Task manager 1
    source1 (1) --> operator1 (1) --> ...
                |
JVM 2/          |
Task manager 2  |
                |
                --> operator1 (2) --> ...

假设operator1(2)失败/它的JVM失败,source1实例和两个operator1实例都将失败并重启?

1 个答案:

答案 0 :(得分:1)

是的,这是正确的。在当前版本(Flink 1.5.0)中,通过取消所有任务并重新启动它们来恢复作业。

但是,这可能会在未来发生变化,以加快恢复周期。如果发生这种情况,任务将暂停,从上一个成功的检查点重新加载其状态,并在失败的任务恢复后继续。