FlinkCDC1.14 cdc 2.3.0 为什么?

FlinkCDC1.14 cdc 2.3.0
2023-10-13T14:53:59.280467890+08:00 2023-10-13 06:53:59,279 ERROR org.apache.flink.runtime.util.ClusterUncaughtExceptionHandler [] - WARNING: Thread 'connection-pool-rm-bp14126jn85wyy0yb.mysql.rds.aliyuncs.com:3306 connection closer' produced an uncaught exception. If you want to fail on uncaught exceptions, then configure cluster.uncaught-exception-handling accordingly

2023-10-13T14:53:59.280494973+08:00 java.lang.NoClassDefFoundError: com/mysql/cj/protocol/ExportControlled

2023-10-13T14:53:59.280497893+08:00 at com.mysql.cj.protocol.NetworkResources.forceClose(NetworkResources.java:53) ~[?:?]

2023-10-13T14:53:59.280501400+08:00 at com.mysql.cj.protocol.AbstractSocketConnection.forceClose(AbstractSocketConnection.java:103) ~[?:?]

2023-10-13T14:53:59.280503366+08:00 at com.mysql.cj.protocol.a.NativeProtocol.quit(NativeProtocol.java:1274) ~[?:?]

2023-10-13T14:53:59.280505262+08:00 at com.mysql.cj.NativeSession.quit(NativeSession.java:149) ~[?:?]

2023-10-13T14:53:59.280507160+08:00 at com.mysql.cj.jdbc.ConnectionImpl.realClose(ConnectionImpl.java:1722) ~[?:?]

2023-10-13T14:53:59.280509143+08:00 at com.mysql.cj.jdbc.ConnectionImpl.close(ConnectionImpl.java:713) ~[?:?]

2023-10-13T14:53:59.280511343+08:00 at com.ververica.cdc.connectors.shaded.com.zaxxer.hikari.pool.PoolBase.quietlyCloseConnection(PoolBase.java:143) ~[?:?]

2023-10-13T14:53:59.280513260+08:00 at com.ververica.cdc.connectors.shaded.com.zaxxer.hikari.pool.HikariPool.lambda$closeConnection$1(HikariPool.java:451) ~[?:?]

2023-10-13T14:53:59.280515161+08:00 at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) ~[?:?]

2023-10-13T14:53:59.280517050+08:00 at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) ~[?:?]

2023-10-13T14:53:59.280519302+08:00 at java.lang.Thread.run(Unknown Source) [?:?]

展开
收起
真的很搞笑 2023-10-18 17:06:57 456 分享 版权
阿里云 AI 助理回答

从提供的错误日志来看,您在使用 Flink CDC 1.14 版本连接到阿里云 RDS MySQL 实例时遇到了 java.lang.NoClassDefFoundError: com/mysql/cj/protocol/ExportControlled 错误。这个错误通常意味着 Java 运行时环境无法找到或加载某个类定义,这里具体是 MySQL Connector/J 的一个内部类。

解决这个问题的步骤可以包括:

  1. 检查依赖冲突:确保您的项目中没有不同版本的 MySQL Connector/J 或其他可能引起冲突的库。Flink CDC 可能自带了特定版本的 MySQL 驱动,而外部引入的驱动可能会导致冲突。查看项目的依赖管理配置(如 Maven 的 pom.xml 或 Gradle 的 build.gradle),确认是否有不一致之处,并统一到一个兼容的版本。

  2. 依赖排除与升级:如果发现有冲突的库,尝试使用依赖排除功能来移除冲突的版本,或者直接升级到一个已知兼容的 MySQL Connector/J 版本。对于 Flink CDC,你可能需要查看其文档以了解推荐的驱动版本。

  3. 验证类路径:确认运行时环境中确实包含了所需的 MySQL Connector/J JAR 文件。可以通过启动参数或应用服务器配置来检查类路径设置是否正确。

  4. 清理和重建:有时候,即使修复了依赖问题,旧的编译产物或缓存仍然可能导致问题。尝试清空本地构建缓存、重新编译并打包你的应用。

  5. 环境一致性:确保开发、测试和生产环境使用的Java版本、库版本保持一致,避免因环境差异引发的问题。

  6. 查看 Flink CDC 文档:访问 Apache Flink 或 Flink CDC Connector 的官方文档,查看是否有已知问题或特定于版本的配置指南。

如果以上步骤不能解决问题,建议查阅相关社区论坛或提交 issue 到 Flink CDC 的 GitHub 仓库,寻求更专业的帮助。同时,考虑到您使用的是阿里云RDS,也可以联系阿里云技术支持获取进一步的帮助。您可以复制页面截图提供更多信息,我可以进一步帮您分析问题原因。

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

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

还有其他疑问?
咨询AI助理