由於項目需要,需要用到flink cdc進行Flink SQL 開發,一起增加開發效率,減少很多java代碼開發.
在版本方面,Flink CDC 在flink1.11 以上的版本才有支持,在這里選擇Flink1.12.0。
CDH版本:CDH6.3.2 Cloudera Manager 集成Flink1.12.0
詳細步驟如下:
1 安裝包下載:
1)flink鏡像包:https://archive.apache.org/dist/flink/flink-1.12.0/flink-1.12.0-bin-scala_2.12.tgz
2)parcel制作工具:https://github.com/pkeropen/flink-parcel.git(github提供的工具包)
2 安裝工作parcel
1)制作配置文件
1 1)下載制作工具:
2 git clone https://github.com/pkeropen/flink-parcel.git
3 完成后會在當前目錄生成一個flink-parcel的文件,證明下載成功
4
5 2)修改配置文件
6 cd ./flink-parce
7 vim flink-parcel.properties
8 進行相應修改,內容如下:
9 #FLINK 下載地址
10 FLINK_URL=https://archive.apache.org/dist/flink/flink-1.12.0/flink-1.12.0-bin-scala_2.12.tgz
11
12 #flink版本號
13 FLINK_VERSION=1.12.0
14
15 #擴展版本號
16 EXTENS_VERSION=BIN-SCALA_2.12
17
18 #操作系統版本,以centos為例
19 OS_VERSION=7
20
21 #CDH 小版本
22 CDH_MIN_FULL=5.2
23 CDH_MAX_FULL=6.3.3
24
25 #CDH大版本
26 CDH_MIN=5
27 CDH_MAX=6
28
29 3)保存並退出
2)構建安裝包
(1)./build.sh parcel
下載並打包完成后會在當前目錄生成FLINK-1.11.3-BIN-SCALA_2.12_build文件
(2)構建flink-yarn csd包
./build.sh csd_on_yarn
執行完成后會生成FLINK_ON_YARN-1.12.0.jar
(3)將FLINK-1.11.3-BIN-SCALA_2.12_build打包
tar -cvf ./FLINK-1.12.0-BIN-SCALA_2.12.tar ./FLINK-1.12.0-BIN-SCALA_2.12_build/
(4)將FLINK-1.12.0-BIN-SCALA_2.12.tar FLINK_ON_YARN-1.12.0.jar下載,這兩個包就是目標包
sz FLINK-1.12.0-BIN-SCALA_2.12.tar FLINK_ON_YARN-1.12.0.jar
3 安裝包集成Cloundera Manager
將上傳的FLINK-1.12.0-BIN-SCALA_2.12.tar進行解壓到/var/www/html
tar -xvf FLINK-1.12.0-BIN-SCALA_2.12.tar -C /var/www/html
重命名
mv FLINK-1.12.0-BIN-SCALA_2.12_build flink
cd /var/www/html/flink
createrepo .
配置局域網flink的yum
cd /etc/yum.repo.d
vim ./flink.repo
輸入如下內容
[flink]
name=flink
baseurl=http://yum源ip/flink
enabled=1
gpgcheck=0
然后執行
yum clean all
yum makecache
登錄cm
在parcel配置界面添加flink的parcel源
然后進行下載→分配→解壓→激活
然后登錄服務器,將FLINK_ON_YARN-1.12.0.jar上傳到cm主節點的/opt/cloudera/csd/目錄下(目的是讓cm識別)
4 出現的問題及解決思路
flink啟動報錯找不到yarn的jar包
官網的說法是flink1.11版本之后的版本都不需要單獨編譯hadoop的適配包了,只需要配置HADOOP_CLASSPATH=`hadoop classpath`即可,但是我配置后問題也沒有解決,只好添加適配包,但經過編譯1.12.0版本的shad后,並沒有相關的包,所以我采用的是1.10版本的適配包(自行搜索下載即可,若需要也可聯系博主)
cd /opt/cloudera/parcels/FLINK/lib/flink/lib
rz flink-shaded-hadoop-2-uber-2.7.5-10.0.jar(所有flink節點都需要添加)
添加完成后再重試還會報一個與Kerberos相關的錯誤,由於我的集群並沒有開啟Kerberos,所以需要到flink的配置界面中把Kerberos相關的配置刪除,完后再重啟就能夠正常啟動了。
啟動后flink在cm界面的顯示狀態為?問題
在cm界面重啟cm服務即可解決