Flink cdc报错问题之同步表格报错如何解决

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
简介: Flink CDC报错指的是使用Apache Flink的Change Data Capture(CDC)组件时遇到的错误和异常;本合集将汇总Flink CDC常见的报错情况,并提供相应的诊断和解决方法,帮助用户快速恢复数据处理任务的正常运行。

问题一:mysq flink cdc 2.3.0报错,有大佬知道什么原因吗?

mysq flink cdc 2.3.0报错,有大佬知道什么原因吗?

org.apache.flink.util.FlinkRuntimeException: Chunk splitting has encountered exception at com.ververica.cdc.connectors.mysql.source.assigners.MySqlSnapshotSplitAssigner.checkSplitterErrors(MySqlSnapshotSplitAssigner.java:522) ~[flink-sql-connector-mysql-cdc-2.3.0.jar:2.3.0] at com.ververica.cdc.connectors.mysql.source.assigners.MySqlSnapshotSplitAssigner.getNext(MySqlSnapshotSplitAssigner.java:278) ~[flink-sql-connector-mysql-cdc-2.3.0.jar:2.3.0] at com.ververica.cdc.connectors.mysql.source.assigners.MySqlHybridSplitAssigner.getNext(MySqlHybridSplitAssigner.java:123) ~[flink-sql-connector-mysql-cdc-2.3.0.jar:2.3.0] at com.ververica.cdc.connectors.mysql.source.enumerator.MySqlSourceEnumerator.assignSplits(MySqlSourceEnumerator.java:201) ~[flink-sql-connector-mysql-cdc-2.3.0.jar:2.3.0] at com.ververica.cdc.connectors.mysql.source.enumerator.MySqlSourceEnumerator.handleSplitRequest(MySqlSourceEnumerator.java:117) ~[flink-sql-connector-mysql-cdc-2.3.0.jar:2.3.0] at org.apache.flink.runtime.source.coordinator.SourceCoordinator.lambda$handleEventFromOperator$1(SourceCoordinator.java:172) ~[flink-dist_2.12-1.14.0.jar:1.14.0] at org.apache.flink.runtime.source.coordinator.SourceCoordinator.lambda$runInEventLoop$8(SourceCoordinator.java:331) ~[flink-dist_2.12-1.14.0.jar:1.14.0] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_312] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_312] at java.lang.Thread.run(Thread.java:748) [?:1.8.0_312] Caused by: java.lang.NoSuchMethodError: com.mysql.cj.CharsetMapping.getStaticCollationNameForCollationIndex(Ljava/lang/Integer;)Ljava/lang/String; at io.debezium.connector.mysql.antlr.MySqlAntlrDdlParser.extractCharset(MySqlAntlrDdlParser.java:404) ~[flink-sql-connector-mysql-cdc-2.3.0.jar:2.3.0]

at io.debezium.connector.mysql.antlr.listener.ColumnDefinitionParserListener.resolveColumnDataType(ColumnDefinitionParserListener.java:155) ~[flink-sql-connector-mysql-cdc-2.3.0.jar:2.3.0] at io.debezium.connector.mysql.antlr.listener.ColumnDefinitionParserListener.enterColumnDefinition(ColumnDefinitionParserListener.java:82) ~[flink-sql-connector-mysql-cdc-2.3.0.jar:2.3.0] at io.debezium.ddl.parser.mysql.generated.MySqlParser$ColumnDefinitionContext.enterRule(MySqlParser.java:8316) ~[flink-sql-connector-mysql-cdc-2.3.0.jar:2.3.0] at io.debezium.antlr.ProxyParseTreeListenerUtil.delegateEnterRule(ProxyParseTreeListenerUtil.java:46) ~[flink-sql-connector-mysql-cdc-2.3.0.jar:2.3.0] at io.debezium.connector.mysql.antlr.listener.MySqlAntlrDdlParserListener.enterEveryRule(MySqlAntlrDdlParserListener.java:89) ~[flink-sql-connector-mysql-cdc-2.3.0.jar:2.3.0] at com.ververica.cdc.connectors.shaded.org.antlr.v4.runtime.tree.ParseTreeWalker.enterRule(ParseTreeWalker.java:41) ~[flink-sql-connector-mysql-cdc-2.3.0.jar:2.3.0] at com.ververica.cdc.connectors.shaded.org.antlr.v4.runtime.tree.ParseTreeWalker.walk(ParseTreeWalker.java:25) ~[flink-sql-connector-mysql-cdc-2.3.0.jar:2.3.0] at com.ververica.cdc.connectors.shaded.org.antlr.v4.runtime.tree.ParseTreeWalker.walk(ParseTreeWalker.java:28) ~[flink-sql-connector-mysql-cdc-2.3.0.jar:2.3.0] at com.ververica.cdc.connectors.shaded.org.antlr.v4.runtime.tree.ParseTreeWalker.walk(ParseTreeWalker.java:28) ~[flink-sql-connector-mysql-cdc-2.3.0.jar:2.3.0] at com.ververica.cdc.connectors.shaded.org.antlr.v4.runtime.tree.ParseTreeWalker.walk(ParseTreeWalker.java:28) ~[flink-sql-connector-mysql-cdc-2.3.0.jar:2.3.0]"



关于本问题的更多回答可点击进行查看:

https://developer.aliyun.com/ask/474000?spm=a2c6h.13066369.question.31.4d426d0cTlhTgM



问题二:请问有没有人遇到过使用MySQL CDC,然后Flink jdbc写Oracle sink, 因为写入出错(Oracle报错)不断重试,导致Oracle连接被耗完?

请问有没有人遇到过使用MySQL CDC,然后Flink jdbc写Oracle sink, 因为写入出错(Oracle报错)不断重试,导致Oracle连接被耗完?



参考答案:

在使用MySQL CDC和Flink JDBC写入Oracle sink时,可能会遇到连接被耗尽的问题。这通常是因为写操作失败后,Flink会尝试重新连接到Oracle数据库,但是如果连接池中的连接数量不足,就会一直重试,导致连接被耗尽。

为了解决这个问题,可以考虑以下几种方法:

  1. 增加Oracle连接池的大小:可以尝试增加Oracle连接池的大小,以便在连接失败后有足够的备用连接可供使用。可以通过修改JDBC驱动程序的属性来设置连接池大小,例如通过在应用程序中设置javax.sql.DataSource属性来实现。
  2. 设置连接超时时间:可以在Flink应用程序中设置连接超时时间,以便在连接无法建立或保持活动一段时间后自动断开连接。这样可以避免无限期地等待连接建立或保持活动而导致连接被耗尽。可以在Flink应用程序中使用org.apache.flink.streaming.api.functions.sink.SinkFunctionBuilderhandleConnectionFailure方法来设置连接超时时间。
  3. 优化写入操作:可以尝试优化写入操作,以减少写入失败的概率。例如,可以调整写入数据的频率和批量大小,以避免与数据库性能瓶颈之间的竞争。还可以使用更高效的写入方式,例如使用二进制日志格式(Binary Log Format)进行写入,以减少写入失败的可能性。



关于本问题的更多回答可点击进行查看:

https://developer.aliyun.com/ask/496487?spm=a2c6h.13066369.question.32.4d426d0cfUlZn9



问题三:请问flink sql cdc pg或者mysql 报这个错的原因是什么?

请问flink sql cdc pg或者mysql 报这个错的原因是什么,报错: Exception in thread "main" org.apache.flink.table.api.ValidationException: Unable to create a source for reading table 'default_catalog.default_database.pgsql_source'



参考答案:

应该是你参数哪里没写对。



关于本问题的更多回答可点击进行查看:

https://developer.aliyun.com/ask/492408?spm=a2c6h.13066369.question.33.4d426d0cZLyWLo



问题四:各位大侠,flink sql cdc pg或者mysql报这个错的原因是什么?

各位大侠,flink sql cdc pg或者mysql报这个错的原因是什么,报错: Exception in thread "main" org.apache.flink.table.api.ValidationException: Unable to create a source for reading table 'default_catalog.default_database.pgsql_source'




参考答案:

看报错是由于 Flink SQL CDC 模块无法正确连接到 PostgreSQL 或 MySQL 数据库引起的。

检查下数据库连接信息、数据库不存在或表不存在、数据驱动、数据库访问权限等。



关于本问题的更多回答可点击进行查看:

https://developer.aliyun.com/ask/492444?spm=a2c6h.13066369.question.34.4d426d0cNyHZxZ



问题五:Flink CDC同步某张表报上述错误,其它表没遇到该问题。issue 里也看到类似报错,求解决方法

Flink CDC同步某张表报上述错误,其它表没遇到该问题。issue 里也看到类似报错,求解决方法 Flink: 1.15.2 Oracle-connector: 2.3.0 Database: Oracle 19c

io.debezium.DebeziumException: The db history topic or its content is fully or partially missing. Please check database history topic configuration and re-execute the snapshot.



参考答案:

可以issue页面关注更新 https://github.com/ververica/flink-cdc-connectors/issues/1737



关于本问题的更多回答可点击进行查看:

https://developer.aliyun.com/ask/483443?spm=a2c6h.13066369.question.35.4d426d0cqjQrRU

相关实践学习
基于Hologres轻松玩转一站式实时仓库
本场景介绍如何利用阿里云MaxCompute、实时计算Flink和交互式分析服务Hologres开发离线、实时数据融合分析的数据大屏应用。
Linux入门到精通
本套课程是从入门开始的Linux学习课程,适合初学者阅读。由浅入深案例丰富,通俗易懂。主要涉及基础的系统操作以及工作中常用的各种服务软件的应用、部署和优化。即使是零基础的学员,只要能够坚持把所有章节都学完,也一定会受益匪浅。
相关文章
|
1月前
|
消息中间件 Java Kafka
Flink CDC 在外部查询某个 job 中的表数据
【2月更文挑战第27天】Flink CDC 在外部查询某个 job 中的表数据
44 5
|
1月前
|
API 数据库 流计算
有大佬知道在使用flink cdc实现数据同步,如何实现如果服务停止了对数据源表的某个数据进行删除操作,重启服务之后目标表能进行对源表删除的数据进行删除吗?
【2月更文挑战第27天】有大佬知道在使用flink cdc实现数据同步,如何实现如果服务停止了对数据源表的某个数据进行删除操作,重启服务之后目标表能进行对源表删除的数据进行删除吗?
52 3
|
1月前
|
自然语言处理 Java Scala
Flink CDC产品常见问题之大文件整库同步怎么解决
Flink CDC产品常见问题之大文件整库同步怎么解决
|
1月前
|
Java 关系型数据库 MySQL
Flink1.18.1和CDC2.4.1 本地没问题 提交任务到服务器 报错java.lang.NoClassDefFoundError: Could not initialize class io.debezium.connector.mysql.MySqlConnectorConfig
【2月更文挑战第33天】Flink1.18.1和CDC2.4.1 本地没问题 提交任务到服务器 报错java.lang.NoClassDefFoundError: Could not initialize class io.debezium.connector.mysql.MySqlConnectorConfig
49 2
|
1月前
|
消息中间件 Kafka 流计算
如果有多个版本的Flink CDC在同一环境中运行,可能会导致Debezium版本冲突
【2月更文挑战第30天】如果有多个版本的Flink CDC在同一环境中运行,可能会导致Debezium版本冲突
20 2
|
1月前
|
消息中间件 API Apache
官宣|阿里巴巴捐赠的 Flink CDC 项目正式加入 Apache 基金会
本文整理自阿里云开源大数据平台徐榜江 (雪尽),关于阿里巴巴捐赠的 Flink CDC 项目正式加入 Apache 基金会。
1405 1
官宣|阿里巴巴捐赠的 Flink CDC 项目正式加入 Apache 基金会
|
1月前
|
Java 关系型数据库 MySQL
Flink CDC有见这个报错不?
【2月更文挑战第29天】Flink CDC有见这个报错不?
22 2
|
1月前
|
关系型数据库 MySQL API
Flink CDC产品常见问题之mysql整库同步到starrock时任务挂掉如何解决
Flink CDC产品常见问题之mysql整库同步到starrock时任务挂掉如何解决
|
2月前
|
消息中间件 Kafka Apache
Apache Flink 是一个开源的分布式流处理框架
Apache Flink 是一个开源的分布式流处理框架
482 5
|
1月前
|
SQL Java API
官宣|Apache Flink 1.19 发布公告
Apache Flink PMC(项目管理委员)很高兴地宣布发布 Apache Flink 1.19.0。
1339 1
官宣|Apache Flink 1.19 发布公告

相关产品

  • 实时计算 Flink版