[Flink] Flink作业报错:Caused by: The connector is trying to read binlog starting at GTIDs ..., but this
Posted 千千寰宇
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Flink] Flink作业报错:Caused by: The connector is trying to read binlog starting at GTIDs ..., but this 相关的知识,希望对你有一定的参考价值。
这个问题,属于偶现问题。通常几个月才偶现一次。
因为上周五又出现了一次,且团队内多位小伙伴都遇到过。故此,这次特别记录下,以加强印象。
1 问题描述
Flink作业报错:Caused by: The connector is trying to read binlog starting at GTIDs ..., but this is no longer available on the server. Reconfigure the connector to use a snapshot when needed.
2 问题原因
Flink Job
正在读的 mysql binlog
日志被清理了,出现这个报错目前只能全新状态重启。
3 解决方案
导致报错的可能原因以及处理办法:
- 原因1:RDS做了内部迁移操作,Flink jar作业使用mysql cdc消费mysql数据报错的原因是是作业处理的速度追不上mysql binlog 产生的速度,导致正在读的位点被清理了。
解决办法:需要全新启动作业,以重新读取数据解决。
- 原因2:RDS有日志保留策略,最长18个小时,最大占用30%存储空间,两个条件谁先满足都会触发删除,如果您写入特别多,超过30%的存储空间了,可能binlog日志1小时就删除了
注:rds页面上还有一个7天的binlog文件保存,这个是rds后台转存到你们的oss上的,flink cdc目前是没有去转存后oss上去读取这些文件的。
解决办法:需要调整RDS MySQL的Binlog过期策略,使得Binlog能正常被读取。
- 原因3:通过只读实例消费 CDC 数据,RDS的只读实例不保证binlog(本地只保留10s,上传oss),所以 flink cdc 侧不建议连接 RDS 的只读实例。 只读实例一旦作业 Failover 10s 内恢复不过来,就会有这个异常 只读实例判定,rr 开头的就是只读实例 rm 开头的就是正常的实例
解决办法:不建议MySQL CDC源表读取RDS的只读实例数据。
- 原因4:MySQL CDC作业消费Binlog太慢,例如下游的聚合算子或者Sink算子长时间出现反压,反压传递到source,导致source无法消费数据。
解决办法:需要对作业资源调优,让source恢复正常消费即可。
- 原因5:作业正在读取的Binlog文件在MySQL服务器已经被清理掉时,会出现该报错。这种情况一般由于MySQL服务器上Binlog的保留时间太短。
解决办法:可以将Binlog的保留时间调大,比如7天。具体命令如下。
mysql> show variables like \'expire_logs_days\';
mysql> set global expire_logs_days=7;
X 参考文献
本文链接: https://www.cnblogs.com/johnnyzen
关于博文:评论和私信会在第一时间回复,或直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
日常交流:大数据与软件开发-QQ交流群: 774386015 【入群二维码】参见左下角。您的支持、鼓励是博主技术写作的重要动力!
Flink 新加source后 发布前需要修改checkpoint的namspace/报错:作业拓扑发生改变,无法使用现有Checkpoint
之前是:
source_a union all source_b ;
新加source_c:
source_a union all source_b union all source_c;
会报错:
Flink任务Checkpoint检查
报错:作业拓扑发生改变,无法使用现有Checkpoint
Checkpoint verification error: org.apache.flink.client.program.ProgramInvocationException: The main method caused an error: Failed to execute sql
以上是关于[Flink] Flink作业报错:Caused by: The connector is trying to read binlog starting at GTIDs ..., but this 的主要内容,如果未能解决你的问题,请参考以下文章
Flink 新加source后 发布前需要修改checkpoint的namspace/报错:作业拓扑发生改变,无法使用现有Checkpoint
Flink 新加source后 发布前需要修改checkpoint的namspace/报错:作业拓扑发生改变,无法使用现有Checkpoint
Flink 新加source后 发布前需要修改checkpoint的namspace/报错:作业拓扑发生改变,无法使用现有Checkpoint
The main method caused an error: java.util.concurrent.ExecutionException: org.apache.flink.runtime.c
The main method caused an error: java.util.concurrent.ExecutionException: org.apache.flink.runtime.c