写在前边:kudu性能就不多介绍了,是目前比较主流的数据库,但是可惜的是FLINKSQL居然不支持读写kudu,奇了怪。没办法,为了能写入只能自己动手了。经过查找发现有大佬已经开源过了,那么我们就在这个基础上进行就好了
一、软件版本
以下是我使用的版本。大家可以作为参考,然后根据自己的实际情况进行更改即可
CDH6.3.2
kudu 1.10.0-cdh6.3.2
Flink 1.12.2
二、前期准备
1、下载源码
git clone git://github.com/apache/bahir-flink
2、修改pom
1、首先调整根目录下的pom.xml文件
vim bahir-flink/pom.xml
首先是73-84行处,只留下flink-connector-kudu这个module,其他删掉
然后修改91-106行左右的版本,这里的版本修改为自己使用的版本
2、然后修改flink-connector-kudu的pom
vim bahir-flink/flink-connector-kudu/pom.xml
大约32-35行处的kudu版本修改为自己正在使用的版本
ps:如果是cdh版本的话,下方74-80行的kudu-binary版本直接写前缀即可,如下图所示:
三、开始编译
在bahir-flink目录下执行:
mvn clean install -DskipTests -Drat.skip=true
出现下图则表示执行成功
四、添加依赖到Flink的lib目录下
编译结束后进入到 flink-connector-kudu/target 目录下
将框起来的这个文件放在Flink的lib目录下 注意:每台服务器的Flink目录下都要加
如果你配置的Flink的环境变量,可以参考我这种写法
cp flink-connector-kudu_2.11-1.1-SNAPSHOT.jar $FLINK_HOME/lib
五、增加一个特殊的依赖包async-1.4.1.jar
如果不添加这个依赖到FLink的lib目录下会报如下错误
2021-07-08 15:15:44
org.apache.flink.runtime.JobException: Recovery is suppressed by NoRestartBackoffTimeStrategy
at org.apache.flink.runtime.executiongraph.failover.flip1.ExecutionFailureHandler.handle