Flink Recovery is suppressed by NoRestartBackoffTime Strategy

Recovery is suppressed by NoRestartBackoffTime Strategy 主键冲突

1、错误场景

首先我这个错误场景是使用flink连接mysql时报的错。

2、错误原因

导致这个报错的原因是因为,mysql表里面设置了主键,并且新插入的数据中在mysql中已经存在,所以才会导致主键冲突。

3、解决方案

方案一:

第一种解决方案,就是在flink DDL中添加主键:primary key(id) NOT ENFORCED
不过flink 会将已经存在结果表的数据给更新掉(只会更新重复的key_id部分)。

方案二:

如果不想将历史数据updata掉,可以在mysql中设置自增ID。
不过这种方式会导致结果表中有重复数据,因为他是直接将数据追加进来的。

以上纯属个人观点,如果有什么错误信息,欢迎大家指正!!! !

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
在部署flink程序到独立的flink集群时,如果出现"Recovery is suppressed by NoRestartBackoffTimeStrategy"的错误,这通常是由于没有设置合适的重启策略导致的。为了解决这个问题,你可以按照以下引用内容中的方法进行设置。 你可以使用如下代码指定一个固定的重启策略: ``` env.setRestartStrategy(RestartStrategies.fixedDelayRestart( 3, // 尝试重启的次数 Time.of(10, TimeUnit.SECONDS) // 间隔 )); ``` 这样设置后,flink将会在程序失败后尝试重新启动,最多重启3次,每次间隔10秒。 另外,你也可以使用失败率重启策略: ``` val env = ExecutionEnvironment.getExecutionEnvironment() env.setRestartStrategy(RestartStrategies.failureRateRestart( 3, // 一个时间段内的最大失败次数 Time.of(5, TimeUnit.MINUTES), // 衡量失败次数的时间段 Time.of(10, TimeUnit.SECONDS) // 间隔 )) ``` 这种策略会根据指定的时间段内的失败次数来进行重启,最多重启3次,每次间隔10秒。 通过设置适当的重启策略,你应该能够解决"Recovery is suppressed by NoRestartBackoffTimeStrategy"的问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [flink 1.14.3集群jar部署Recovery is suppressed by NoRestartBackoffTimeStrategy](https://blog.csdn.net/liaomingwu/article/details/123051704)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值