自动重启策略和恢复
1)、重启策略配置方式
配置文件
在flink-conf.yml中可以进行配置,示例如下:
restart-strategy: fixed-delay
restart-strategy.fixed-delay.attempts: 3
restart-strategy.fixed-delay.delay: 10 s
代码中
可以在代码中针对该任务进行配置,示例如下:
env.setRestartStrategy(RestartStrategies.fixedDelayRestart(
3, // 重启次数
Time.of(10, TimeUnit.SECONDS) // 延迟时间间隔 ))
2)、重启策略分类
其一、默认重启策略
如果配置Checkpoint,没有配置重启策略,那么代码中出现了非致命错误时,程序会无限重启。
其二、无重启策略
ob直接失败,不会尝试进行重启
设置方式一:
restart-strategy: none
设置方式二:
无重启策略也可以在程序中设置
val env = ExecutionEnvironment.getExecutionEnvironment()
env.setRestartStrategy(RestartStrategies.noRestart())
其三、固定延迟重启策略(开发中使用)
设置方式一: 重启策略可以配置flink-conf.yaml的下面配置参数来启用,作为默认的重启策略: 例子:
restart-strategy: fixed-delay restart-strategy.fixed-delay.attempts: 3
restart-strategy.fixed-delay.delay: 10 s
设置方式二: 也可以在程序中设置:
val env =ExecutionEnvironment.getExecutionEnvironment()
env.setRestartStrategy(RestartStrategies.fixedDelayRestart(
3, //最多重启3次数 Time.of(10, TimeUnit.SECONDS) // 重启时间间隔 ))
上面的设置表示:如果job失败,重启3次, 每次间隔10
其四、失败率重启策略(偶尔使用)
设置方式1: 失败率重启策略可以在flink-conf.yaml中设置下面的配置参数来启用: 例子:
restart-strategy: