flink 重启策略

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

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

重启策略

固定延迟重启策略(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());

故障转移策略(Failover Strategies)

Flink支持不同的故障转移策略,可以通过Flink的配置文件flink-conf.yaml中的配置参数jobmanager.execution.failover-strategy对其进行配置。

重新启动所有故障转移策略(Restart All Failover Strategy)

此策略重新启动作业中的所有任务以从任务失败中恢复。

重新启动流水线区域故障转移策略(Restart Pipelined Region Failover Strategy)

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

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Flink支持不同的重启策略,可以控制在发生故障时如何重新启动作业。可以使用默认重新启动策略启动集群,该策略在未定...
    尼小摩阅读 6,154评论 0 8
  • 概述 Flink支持不同的重启策略,以在故障发生时控制作业如何重启 集群在启动时会伴随一个默认的重启策略,在没有定...
    木戎阅读 830评论 0 0
  • 前言 流式计算对稳定性敏感,所以我们在编写作业时一定会做好防御性编程,如各种判空、边界条件、安全的类型转换、格式判...
    LittleMagic阅读 6,560评论 11 12
  • 有一段时间我很热衷于买彩票,因为太方便了,随时可以拿出手机在支付宝或微信上投注,虽然很少中奖,但这并不妨碍我买彩票...
    小看阅读 340评论 0 1
  • 今天很惊奇地知道堂妹想要学英语而且想我教她。我的第一反应是呆了,心中不禁在问:一个在身边人认为只会吃喝玩乐的人居然...
    Charissa阅读 1,412评论 0 0

友情链接更多精彩内容