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]"

lALPJw1WVVsegnHNA_3NB4Q_1924_1021.png

展开
收起
爱喝咖啡嘿 2022-12-12 10:21:07 1279 分享 版权
阿里云 AI 助理回答

这个错误信息表明在使用 Flink SQL Connector for MySQL CDC 2.3.0 版本时,遇到了一个 NoSuchMethodError 异常。具体来说,问题发生在尝试调用 com.mysql.cj.CharsetMapping.getStaticCollationNameForCollationIndex(Integer) 方法时找不到该方法,这通常意味着存在类路径冲突或者不兼容的库版本问题。

可能的原因和解决办法如下:

  1. 库版本不兼容:你可能在项目中同时引入了不同版本的 MySQL 连接器或其他相关库,导致运行时加载到了错误版本的类。请检查你的项目依赖,确保所有与MySQL相关的库(特别是mysql-connector-javadebezium-connector-mysql)版本与Flink SQL Connector for MySQL CDC 2.3.0兼容。如果有必要,统一升级或降级到一个已知兼容的版本。

  2. 类路径污染:确认没有其他地方也引入了可能导致冲突的MySQL客户端库。有时候,即使直接依赖管理得当,间接依赖也可能引入冲突。可以使用Maven或Gradle的依赖分析工具来帮助识别并解决这类问题。

  3. 清理和重建:有时候,即使更改了依赖版本,旧的库文件仍可能存在于本地缓存或构建目录中。尝试执行mvn clean installgradlew clean build来彻底清理并重新构建项目。

  4. 查看官方文档:确认Flink SQL Connector for MySQL CDC 2.3.0的官方文档是否有特定的依赖版本要求或已知问题。遵循官方推荐的依赖版本通常是最安全的做法。

  5. 社区支持:如果上述步骤不能解决问题,考虑在Apache Flink或Ververica CDC Connector的官方社区、GitHub issue页面或Stack Overflow上寻求帮助,提供详细的错误日志和你的项目依赖配置,以便获得更专业的帮助。您可以复制页面截图提供更多信息,我可以进一步帮您分析问题原因。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

收录在圈子:
实时计算 Flink 版(Alibaba Cloud Realtime Compute for Apache Flink,Powered by Ververica)是阿里云基于 Apache Flink 构建的企业级、高性能实时大数据处理系统,由 Apache Flink 创始团队官方出品,拥有全球统一商业化品牌,完全兼容开源 Flink API,提供丰富的企业级增值功能。
还有其他疑问?
咨询AI助理