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)
此策略将任务分为不相交的区域。 当检测到任务故障时,此策略将计算必须重新启动以从故障中恢复的最小区域集。 与“重新启动所有故障转移策略”相比,对于某些作业,这可能导致要重新启动的任务更少。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。