之前使用Flink1.13+Flink CDC2.0同步服务器托管网MySQL数据,想测试一下最新的几个版本。但是各种依赖冲服务器托管网突的报错,经过一段时间的调试,终于解决,现在总结一下。
1、flink1.15前后jar包名称不一样
flink-streaming-java、flink-clients、flink-table-api-java-bridge这几个在flink1.15之前,后缀区分Scala版本,如flink-streaming-java_2.12,flink 1.15及之后全部去掉Scala后缀,如flink-streaming-java。
详见:Maven Repository: org.apache.flink flink-streaming-java (mvnrepository.com)https://mvnrepository.com/artifact/org.apache.flink/flink-streaming-java
2、blink-planner
flink 1.14 版本以后,之前版本 blink-planner 转正为 flink 唯一的 planner
所以:flink-table-planner-blink 替换成 flink-table-planner
flink-table-runtime-blink 替换成 flink-table-runtime
3、MySQL依赖
报错:Caused by: java.lang.NoSuchMethodError: com.mysql.cj.CharsetMapping.getJavaEncodingForMysqlCharset(Ljava/lang/String;)Ljava/lang/String;
如果MySQL是8.0,fink cdc2.1之后由debezium连接器引起的问题。
将依赖改为8.0.21之后
mysql
mysql-connector-java
8.0.32
4、guava30依赖冲突
报错:NoClassDefFoundError: org/apache/flink/shaded/guava30/com/google/common/collect/Lists
flink 1.15 及之后和 1.13 使用的 flink-shaded-guava 版本不一样,两个版本不兼容,需要修改 cdc 中的 flink-shaded-guava 版本。
调整完之后就可以了
附录
flink 1.16 + flink-connector-mysql-cdc2.3 的依赖
1.16.0
org.apache.flink
flink-java
${flink-version}
org.apache.flink
flink-streaming-java
${flink-version}
org.apache.flink
flink-clients
${flink-version}
org.apache.flink
flink-table-planner_2.12
${flink-version}
org.apache.flink
flink-table-runtime
${flink-version}
org.apache.flink
flink-table-api-java-bridge
${flink-version}
org.apache.flink
flink-core
${flink-version}
com.ververica
flink-connector-mysql-cdc
2.3.0
mysql
mysql-connector-java
8.0.32
org.apache.flink
flink-shaded-guava
30.1.1-jre-16.0
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
空了挺长时间没写了。一些琐事耽误,然后另一方面就是在写前端。因为我不是学前端出身,所以前端相对比较弱,一下子我也搞的不是很全面,最主要的是没法讲的很细致,前端这东西吧,都说简单,但是想做的很好看那还是需要一些深入学习的。上一篇的文章是邮箱发送,意在做注册的时候…