大数据计算引擎之Flink的重启策略

原文地址:大数据计算引擎之Flink的重启策略

  • Flink 支持不同的重启策略,可以在我们的Flink的Job发生故障的时候控制作业的重启机制。
  • 集群在启动时会伴随一个默认的重启策略,在没有定义的具体的重启策略时会使用该默认策略。
  • 重启策略分为全局配置和当前应用程序配置

重启策略的配置

全局配置

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

配置在5分钟内若失败3次则认定作业失败,重试间隔为10s

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

当前应用程序配置

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

配置在5分钟内若失败3次则认定作业失败,重试间隔为10s

   env.setRestartStrategy(RestartStrategies.failureRateRestart(  
       	3,//一个时间段内的最大失败次数  
		Time.of(5, TimeUnit.MINUTES), // 衡量失败次数的是时间段  
       	Time.of(10, TimeUnit.SECONDS) // 间隔  
   ));

实际代码的演示

        //获取flink的运行环境
        StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
        // 每隔 1000 ms进行启动一个检查点【设置checkpoint的周期】
		// 这个只对流有效
        env.enableCheckpointing(1000);
        // 间隔10秒 重启3次
        env.setRestartStrategy(RestartStrategies.fixedDelayRestart(
            3,
            Time.seconds(10)
        ));
        //5分钟内若失败了3次则认为该job失败,重试间隔为10s
	    env.setRestartStrategy(RestartStrategies.failureRateRestart(
            3,
            Time.of(5,TimeUnit.MINUTES),
            Time.of(10,TimeUnit.SECONDS)
        ));
        //不重试
        env.setRestartStrategy(RestartStrategies.noRestart());
发布了93 篇原创文章 · 获赞 24 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_33356083/article/details/103507914
今日推荐