更新时间:2025-08-01 GMT+08:00

配置Flink作业重启策略

操作场景

Flink支持不同的重启策略,以在发生故障时控制是否重启以及如何重启Flink作业。根据具体的使用场景选择合适的重启策略,可以有效提高Flink作业的稳定性和可靠性,确保在故障发生时能够及时恢复,同时避免不必要的资源消耗。

重启策略包括无重启(No restart)、固定间隔(fixed-delay)和失败率(failure-rate)策略。

  • 无重启(No restart):发生故障时作业会直接失败,不会尝试重启。
  • 固定间隔(fixed-delay):发生故障时会尝试重启作业固定次数,如果超过了最大的尝试次数,作业最终会失败。并且在两次连续重启尝试之间,重启策略会等待固定的时间。
  • 失败率(failure-rate):在作业失败后会直接重启,但超过设置的失败率后,作业会被认定为失败。在两个连续的重启尝试之间,重启策略会等待一个固定的时间。

在FlinkServer平台作业开发界面配置的重启策略优先级高,如果作业开发界面没有配置重启策略,Flink配置界面的重启策略才会生效。

如何选择重启策略

  • 如果用户在作业失败后,不希望重试,则推荐使用No restart策略。
  • 如果用户在作业失败后,希望对作业进行重试,推荐使用failure-rate策略。因为fixed-delay策略可能会因为网络、内存等硬件故障导致用户作业失败次数达到最大重试次数,从而导致作业失败。

在FlinkServer平台作业开发界面配置重启策略

  1. 使用具有FlinkServer管理员权限的用户,登录Manager界面,选择“集群 > 服务 > Flink”,在“Flink WebUI”右侧,单击链接,访问Flink的WebUI。
  2. 单击“作业管理”进入作业管理页面。
  3. 在FlinkServer作业管理界面,可参考创建FlinkServer作业选择已有作业或新建作业,进入作业开发界面。
  4. 在作业开发界面的“基础参数 > 故障恢复策略”下拉框中选择对应策略,并配置对应参数。

    • fixed-delay:需配置“重试次数”和“失败重试间隔(s)”。
    • failure-rate:需配置“最大重试次数”、“时间间隔(min)”和“失败重试间隔(s)”。
    • none:无需配置其他参数。

在Flink配置界面配置重启策略

  1. 登录Manager界面,选择“集群 > 服务 > Flink > 配置 >全部配置”。
  2. 在搜索框输入“restart-strategy”,查看重启策略的配置。

    1. No restart策略

      发生故障时作业会直接失败,不会尝试重启。↵

      参数配置为:↵

      restart-strategy: none↵
    2. fixed-delay策略

      发生故障时会尝试重启作业固定次数,如果超过了最大的尝试次数,作业最终会失败。并且在两次连续重启尝试之间,重启策略会等待固定的时间。

      以配置若重启失败了3次则认为该Job失败,重试时间间隔为10s为例,参数配置为:

      restart-strategy: fixed-delay 
      restart-strategy.fixed-delay.attempts: 3 
      restart-strategy.fixed-delay.delay: 10 s
    3. failure-rate策略

      在作业失败后会直接重启,但超过设置的失败率后,作业会被认定为失败。在两个连续的重启尝试之间,重启策略会等待一个固定的时间。

      以配置10分钟内若重启失败了3次则认为该作业失败,重试时间间隔为10s为例,参数配置为:

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

  3. 若不指定重启策略,集群会使用默认的重启策略。默认重启策略如下(fixed-delay策略):

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

  4. 若需要调整重启策略,勾选需要的重启策略,单击“保存”。选择“实例 > 勾选需要重启的实例 > 更多 > 重启实例”,实例重启成功后指定的重启策略生效。

相关文档

如果需要创建FlinkServer作业,请参见创建FlinkServer作业