关于flink:Flink之体系Task-ExecutionTasks任务故障恢复

7次阅读

共计 1839 个字符,预计需要花费 5 分钟才能阅读完成。

Restart Strategies(重启策略)

重启策略有三种:

  • Fixed delay 固定工夫重启,配置文件中的值 fixed-delay
  • Failure rate 依据失败率,配置文件中的值 failure-rate
  • No restart 无重启,配置文件中的值 None
固定提早重启策略(Fixed Delay Restart Strategy)

固定提早重新启动策略尝试给定次数重新启动作业, 如果超过最大尝试次数,则该作业最终将失败, 在两次间断的重新启动尝试之间,重新启动策略将期待固定的工夫。

通过在 flink-conf.yaml 中设置以下配置参数,默认状况下启用此策略。

restart-strategy: fixed-delay
#申明 Flink 在作业失败之前重试执行的次数,默认值是 1。restart-strategy.fixed-delay.attempts: 3
#提早重试意味着在执行失败之后,从新执行不会立刻启动,而是在肯定的提早之后,默认是 10s。restart-strategy.fixed-delay.delay: 10 s

固定提早重启策略也能够通过编程形式设置:

ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment();
env.setRestartStrategy(RestartStrategies.fixedDelayRestart(
  3, // number of restart attempts
  Time.of(10, TimeUnit.SECONDS) // delay
));
故障率重启策略(Failure Rate Restart Strategy)

故障率重新启动策略在故障后重新启动作业,然而当超过故障率(每个工夫距离的故障)时,作业最终将失败。在两次间断的重新启动尝试之间,重新启动策略将期待固定的工夫。

通过在 flink-conf.yaml 中设置以下配置参数,默认状况下启用此策略。
在 5min 内如果失败了三次以上,作业就失败了。

restart-strategy: failure-rate
restart-strategy.failure-rate.max-failures-per-interval: 3
restart-strategy.failure-rate.failure-rate-interval: 5 min
restart-strategy.failure-rate.delay: 10 s

故障率重启策略也能够通过编程形式设置:

ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment();
env.setRestartStrategy(RestartStrategies.failureRateRestart(
  3, // max failures per interval
  Time.of(5, TimeUnit.MINUTES), //time interval for measuring failure rate
  Time.of(10, TimeUnit.SECONDS) // delay
));
无重启策略(No Restart Strategy)

作业间接失败,不尝试重启。

restart-strategy: none

也能够通过编程形式设置 no restart 策略:

ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment();
env.setRestartStrategy(RestartStrategies.noRestart());

Filover Strategies(故障转移策略)

fink 反对不同的故障复原策略,通过在 flink 的 flink-conf.yaml 配置文件中的 jobmanager.execution.failover-strategy 属性, 有两种形式:

  • restart all 在配置文件中的值为 full
  • restart pipelilned region 在配置文件中的值是 region
重启所有(full)

这种策略重新启动作业中的所有工作以从工作失败中复原

重新启动流水线区域故障转移策略(region)

此策略将工作分为不相交的区域。当检测到工作故障时,此策略将计算必须重新启动以从故障中复原的最小区域集。与“重新启动所有故障转移策略”相比,对于某些作业,这可能导致要重新启动的工作更少。

正文完
 0