我的flink 13.6依赖的shaded-guava是18,mysql-cdc依赖的又是30,引入18,30就没了;引入30,18就没了,怎么解决?
这个问题是因为 Flink 1.13.6 中的 shaded-guava 和 mysql-cdc 2.3.0 使用的 Guava 版本不兼容,导致无法同时引入。解决方案如下:
<properties>
<flink.version>1.13.6</flink.version>
<flink-shaded-guava.version>XX.X.X</flink-shaded-guava.version>
</properties>
<dependencies>
<!-- Flink 1.13.6 -->
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-streaming-java_${scala.binary.version}</artifactId>
<version>${flink.version}</version>
<exclusions>
<!-- Exclude the included Guava as it conflicts with mysql-cdc -->
<exclusion>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- mysql-cdc 2.3.0 -->
<dependency>
<groupId>com.ververica</groupId>
<artifactId>flink-cdc-connectors</artifactId>
<version>2.3.0</version>
<exclusions>
<!-- Exclude the included Guava as it conflicts with the Flink shaded guava -->
<exclusion>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- use the Flink shaded guava -->
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-shaded-guava_${scala.binary.version}</artifactId>
<version>${flink-shaded-guava.version}</version>
</dependency>
</dependencies>
其中,换掉 <flink-shaded-guava.version>
的值,确保其与 Flink 中的 shaded-guava 版本一致。
mvn install:install-file -DgroupId=com.google.guava -DartifactId=guava -Dversion=30.1.1-jre -Dpackaging=jar -Dfile=<path/to/guava-30.1.1-jre.jar>
可能是因为Flink和MySQL的依赖版本不兼容导致的问题。在Flink中,你需要使用18版本的Guava库,而在MySQL中,你需要使用30版本的MySQL Connector/C++库。
为了解决这个问题,你可以尝试以下几种方法:
1、使用Maven等构建工具来管理依赖版本,确保Flink和MySQL使用相同的版本。
2、在Flink中使用--dependencies参数来指定所需的依赖版本,
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。