flink设置checkpoint部署后一直重启,出现检查点无法写入的问题

  1. 问题描述
    项目一共有7个应用程序,只有其中一个程序出现检查点问题,参数配置都相同。
    flink部署后的异常为:
org.apache.flink.util.FlinkRuntimeException: Exceeded checkpoint tolerable failure threshold

最终发现这个提示是没有用的,最后经过一番艰苦的努力,终于解决了问题,这里直接上干货。
问题原因:
由于这个程序连接的数据库比较多,可能会出现这个检查点没有做完,被丢弃掉,又重新开始了一个,循环往复。导致的问题!
解决:

// TODO 2.设置状态后端和检查点-> 并行度,等于kafka的分区数,提高读取速度
env.setParallelism(3);
RocksDBStateBackend rocksDBStateBackend = new RocksDBStateBackend(CK.CKURL);
env.setStateBackend(rocksDBStateBackend);
// 每 1分钟 开始一次 checkpoint
env.enableCheckpointing(CK.CKTIME);
// 高级选项:l
// 设置模式为精确一次 (这是默认值)fListState
env.getCheckpointConfig().setCheckpointingMode(CheckpointingMode.EXACTLY_ONCE);
// 确认 checkpoints 之间的时间会进行 500 ms
env.getCheckpointConfig().setMinPauseBetweenCheckpoints(CK.CKBT);
// Checkpoint 必须在3分钟内完成,否则就会被抛弃(设置大一些,防止出现没有做完的问题)
env.getCheckpointConfig().setCheckpointTimeout(CK.CKTIMEOUT);
// 同一时间只允许一个 checkpoint 进行
env.getCheckpointConfig().setMaxConcurrentCheckpoints(1);
// 开启在 job 中止后仍然保留的 externalized checkpoints
env.getCheckpointConfig().enableExternalizedCheckpoints(CheckpointConfig.ExternalizedCheckpointCleanup.RETAIN_ON_CANCELLATION);

主要是检查点超时时间设置长一点,如果遇到类似的问题,可以试着修改一下上述的参数。

关于checkpoint的好处,这里就不作陈述。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值