任务失败恢复

当任务失败时,Flink需要重新启动失败的任务和其他受影响的任务,使任务恢复到正常状态。

重新启动策略和故障转移策略用于控制任务重新启动。重新启动策略决定是否以及何时可以重新启动失败/受影响的任务。故障转移策略决定应该重新启动哪些任务以恢复作业。

一、重启策略

集群可以使用默认的重新启动策略启动,当没有定义特定于作业的重新启动策略时,总是使用该策略。如果作业提交时带有重启策略,则该策略将覆盖集群的默认设置。

默认重启策略是通过Flink的配置文件flink-conf.yaml设置的。配置参数restart-strategy.type定义采用哪种策略。如果检查点未启用,则使用“不重启(no restart)”策略。如果检查点已激活且未配置重启策略,则使用固定延迟(fixed-delay)策略,并使用Integer.MAX_VALUE重启尝试。

restart-strategy.type定义在作业失败时使用的重新启动策略,可接收的值为String类型,包括:

  • none, off, disable:无重启策略。
  • fixeddelay, fixed-delay:固定延迟重启策略。
  • failurerate, failure-rate:故障率重启策略。
  • exponentialdelay, exponential-delay:指数延迟重启策略。

如果禁用检查点,默认值为none。如果启用了检查点,默认值为fixed-delay,带有Integer.MAX_VALUE重新启动尝试和'1 s'延迟。

除了定义默认的重新启动策略外,还可以为每个Flink作业定义一个特定的重新启动策略 ......

......

抱歉,只有登录会员才可浏览!会员登录


《PySpark原理深入与编程实战》