gpt4 book ai didi

apache-flink - 如果一个任务失败,是否重新启动整个作业

转载 作者:行者123 更新时间:2023-12-05 02:46:48 26 4
gpt4 key购买 nike

我的工作有状态运算符并且还启用了检查点。 staful operator 的其中一项任务由于某种原因失败并已重新启动并恢复检查点状态。

请问以下哪项是重启行为:

  1. 只有失败的任务被重新启动和恢复
  2. 所有运算符(operator)(包含失败的任务)的任务都重新启动并恢复
  3. 整个作业重新启动并恢复

最佳答案

如果一个任务失败,是否重新启动整个作业?

tldr:对于流媒体作业,答案通常是肯定的,但不一定。

Flink 流作业的恢复涉及将源倒带到检查点中记录的偏移量,并将状态重置回仅消耗了这些偏移量之前的数据后的状态。

仅重新启动失败的任务会导致不一致,并且无法提供恰好一次的语义,除非失败的任务不依赖于任何上游任务,并且没有下游任务依赖于它。

然后 Flink 可以做的是根据故障转移区域恢复状态并重新开始处理,这会考虑作业图中的这些依赖关系。在流作业的情况下,只有当作业非常并行时,才有可能比恢复和重新启动整个作业做得更少。因此,在一个令人尴尬的并行作业的情况下,只有失败的区域被恢复并重新启动(包括它从源到接收器的所有子任务),而其他区域继续运行。

如果 jobmanager.execution.failover-strategy 设置为 region,则使用此方法,这是自 Flink 1.10 以来的默认设置。

要了解更多信息,请参阅 FLIP-1: Fine Grained Recovery from Task FailuresApache Flink 1.9.0 Release Announcement ,引入此功能的地方。

关于apache-flink - 如果一个任务失败,是否重新启动整个作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65351006/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com