问题描述:
使用Flink 1.15版本的时候,在本地运行没问题,但发布到集群会报ThreadFactoryBuilder这个类找不到的错误,报错如下:
java.lang.NoClassDefFoundError: org/apache/flink/shaded/guava18/com/google/common/util/concurrent/ThreadFactoryBuilder
报错原因:
flink 1.15 和 1.13 使用的 flink-shaded-guava 版本不一样,两个版本不兼容,需要修改 cdc 中的 flink-shaded-guava 版本为 flink 1.15 依赖的版本。
解决办法:
1. 添加以下依赖
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-shaded-guava</artifactId>
<version>30.1.1-jre-15.0</version>
</dependency>
- cdc版本改为2.3.0
<dependency>
<groupId>com.ververica</groupId>
<artifactId>flink-connector-mysql-cdc</artifactId>
<version>2.3.0</version>
</dependency>