flink cdc3.01 flink1.17.2 从mysql导数到starrocks报错
Exception in thread "main" java.lang.NoSuchMethodError: com.ververica.cdc.connectors.mysql.source.MySqlSource.(Lcom/ververica/cdc/connectors/mysql/source/config/MySqlSourceConfigFactory;Lcom/ververica/cdc/debezium/DebeziumDeserializationSchema;Lcom/ververica/cdc/connectors/mysql/source/MySqlSource$RecordEmitterSupplier;)V
at com.ververica.cdc.connectors.mysql.source.MySqlDataSource.getEventSourceProvider(MySqlDataSource.java:49)
at com.ververica.cdc.composer.flink.translator.DataSourceTranslator.translate(DataSourceTranslator.java:66)
at com.ververica.cdc.composer.flink.FlinkPipelineComposer.compose(FlinkPipelineComposer.java:101)
at com.ververica.cdc.cli.CliExecutor.run(CliExecutor.java:65)
at com.ververica.cdc.cli.CliFrontend.main(CliFrontend.java:62)是必须用flink1.18吗?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
根据您提供的错误信息,java.lang.NoSuchMethodError
表明在运行 Flink CDC 3.0.1 时,代码中调用的 MySqlSource
构造方法在当前依赖的库中不存在。这通常是由于 Flink 版本与 CDC 连接器版本不兼容 导致的。
从错误堆栈来看,您使用的是 Flink 1.17.2 和 Flink CDC 3.0.1。根据知识库中的资料,Flink CDC 3.0.1 可能需要更高版本的 Flink(如 Flink 1.18 或更高版本)才能正常运行。
如果确认 Flink CDC 3.0.1 需要 Flink 1.18 或更高版本,建议按照以下步骤升级: - 步骤 1:下载并安装 Flink 1.18 - 下载地址:请参考 Apache Flink 官方发布页面或阿里云实时计算 Flink 版的文档。 - 步骤 2:更新依赖配置 - 在项目的 pom.xml
文件中,将 Flink 相关依赖版本更新为 1.18。 - 示例: xml <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-streaming-java_2.11</artifactId> <version>1.18.0</version> </dependency>
- 步骤 3:重新编译和部署 - 使用 Maven 或 Gradle 重新编译项目,并部署到新的 Flink 集群。
如果无法升级 Flink 版本,可以选择使用与 Flink 1.17.2 兼容的 Flink CDC 版本。例如: - Flink CDC 2.x 系列 通常兼容 Flink 1.17.2。 - 修改 pom.xml
文件,将 Flink CDC 版本降级为 2.x: xml <dependency> <groupId>com.ververica</groupId> <artifactId>flink-connector-mysql-cdc</artifactId> <version>2.3.0</version> </dependency>
com.ververica.cdc.connectors.mysql.source.MySqlSource
方法缺失,可能是由于依赖冲突导致的。建议检查以下内容:
pom.xml
中排除可能导致冲突的依赖。例如:
<dependency>
<groupId>com.ververica</groupId>
<artifactId>flink-connector-mysql-cdc</artifactId>
<version>3.0.1</version>
<exclusions>
<exclusion>
<groupId>org.apache.flink</groupId>
<artifactId>flink-streaming-java_2.11</artifactId>
</exclusion>
</exclusions>
</dependency>
根据您的描述,当前问题的根本原因是 Flink 1.17.2 与 Flink CDC 3.0.1 不兼容。解决方法有两种: 1. 升级 Flink 至 1.18 或更高版本。 2. 降级 Flink CDC 至 2.x 系列。
建议优先尝试升级 Flink 版本,因为 Flink CDC 3.0.1 提供了更多新功能和性能优化。如果仍有问题,请提供更多上下文信息以便进一步排查。您可以复制页面截图提供更多信息,我可以进一步帮您分析问题原因。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。