本文主要是介绍flinkcdc 体验,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
0 flink版本 踩雷
java代码操作 flink Table/SQL API 和 DataStream API 编写程序后,打成jar包丢到flink集群运行,报错首选需要考虑flink集群版本和 jar包中maven依赖的版本是否一致。
目前网上flink、flinkcdc相关博文绝大部分是基于flink1.13、1.14编写的,而我的flink集群是1.15!
而flink1.15由于只支持scala-2.12,所以maven依赖包名发生了改变
<!-- 1.15之前的版本 artifactId 会有一个用来区分不同scala版本的“_2.12”、“_2.11”后缀 -->
<dependency><groupId>org.apache.flink</groupId><artifactId>flink-streaming-java_2.12</artifactId><version>1.14.5</version>
</dependency><!-- 1.15版本的 artifactId 没有用来区分不同scala版本的“_2.12”后缀,原因也是1.15只支持scala-2.12 -->
<dependency><groupId>org.apache.flink</groupId><artifactId>flink-streaming-java</artifactId><version>1.15.2</version>
</dependency>
需要特别说明的是,在flink-connector-mysql-cdc模块的pom文件中,有一个flink-table-planner的依赖,这个依赖的 artifactId 不用更改,这个依赖在1.15版本中,artifactId 也是带 scala版本后缀的
<dependency><groupId>org.apache.flink</groupId><artifactId>flink-table-planner_2.12</artifactId><version>1.15.2</version></dependency>
我是文章1和文章2才知道踩的这个坑
如果你的flink集群是1.13 ,请参考这篇教程一文弄懂Flink CDC
如果你想开发完后将任务丢到flink集群上运行,请根据你的flink集群版本选择正确的maven依赖!!
这篇关于flinkcdc 体验的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!