微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Flink状态管理与恢复4

    Flink支持不同的重启策略,以便在故障发生时控制作业如何重启,当然如果你在没有学checkpoint的时候,你可能会问:为什么我的flink的任务在任务失败的时候

直接挂了,没有重启呢?是的,如果flink任务没有启用checkpoint,则使用无重启策略,那么当你配置了checkpoint的时候,重启策略又是怎么样的呢?这便是我们

本篇博客的主要内容:Restart Strategies(flink的重启策略)

常用的flink重启策略

Flink支持不同的重启策略,以在故障发生时控制作业如何重启,集群在启动时会伴随一个认的重启策略,在没有定义具体重启策略时会使用该认策略。 如果在工作提交时指定了一个重启策略,

该策略会覆盖集群的认策略,认的重启策略可以通过Flink的配置文件flink-conf.yaml 指定。配置参数 restart-strategy 定义了哪个策略被使用。

常用的重启策略有3种:

固定间隔 (Fixed delay)、失败率 (Failure rate)、无重启 (No restart)。

如果没有启用 checkpointing,则使用无重启 (no restart) 策略;

如果启用了 checkpointing,但没有配置重启策略,则使用固定间隔 (fixed-delay) 策略,其中 Integer.MAX_VALUE参数是尝试重启次数(不知道你发现没?这就是无数次重启啊!)

flink重启策略的步骤

重启策略可以在flink-conf.yaml中配置,表示全局的配置。也可以在应用代码中动态指定,会覆盖全局配置。

固定间隔 (Fixed delay)

1. 单任务调整

env.setRestartStrategy(RestartStrategies.fixedDelayRestart(
  // 尝试重启的次数
  Time.of(10, TimeUnit.SECONDS) // 间隔
));

2. 全局调整:修改flink-conf.yaml

restart-strategy: fixed-delay
restart-strategy.fixed-delay.attempts: 3
restart-strategy.fixed-delay.delay: 10 s

  

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐