flink 1.15.1版本,mysql cdc采用2.2.1版本,出现org.apache.flink.shaded.guava18.com.google.common.util.concurrent.ThreadFactoryBuilder,这个类找不到,这个咋解决
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
问题描述: 用户在使用Flink 1.15.1版本,并配置MySQL CDC Connector为2.2.1版本时,遇到了org.apache.flink.shaded.guava18.com.google.common.util.concurrent.ThreadFactoryBuilder
类找不到的错误。
背景信息:
解决方案:
步骤1:检查Maven或Gradle依赖配置,确保所有依赖项正确无误且版本兼容。特别是对于Guava库,确认其版本与Flink所期望的shaded Guava版本相匹配。Flink 1.15.x系列通常会使用特定版本的Guava,并通过重新打包(shading)来避免与其他库的Guava版本冲突。因此,直接引用Flink提供的Guava shaded包而非直接引入Guava库可以解决此类问题。
步骤2:如果项目中直接或间接依赖了Guava,请调整依赖管理部分,排除其他库带来的Guava依赖,强制使用Flink自带的shaded Guava版本。例如,在Maven中可以这样操作:
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-java</artifactId>
<version>1.15.1</version>
</dependency>
<!-- 其他依赖中如果有引入Guava,需要排除 -->
<dependency>
<groupId>other.group.id</groupId>
<artifactId>some-artifact</artifactId>
<version>x.y.z</version>
<exclusions>
<exclusion>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
</exclusion>
</exclusions>
</dependency>
步骤3:清理并重建项目依赖,确保更改生效。使用如mvn clean install
或对应构建工具的命令来执行此操作。
注意事项:
总结: 解决ThreadFactoryBuilder
类找不到的问题关键在于确保依赖管理得当,特别是处理好Guava库的版本冲突,通过使用Flink自带的shaded Guava版本和排除外部直接引入的Guava依赖来达到目的。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。