1. 程式人生 > 其它 >自制Flink Parcel整合CDH(Flink1.12.0 + CDH6.3.2)

自制Flink Parcel整合CDH(Flink1.12.0 + CDH6.3.2)

技術標籤:flink大資料

記錄製作flink parcel

環境(虛擬機器,系統CentOS7.6)

(1)jdk1.8
(2)maven3.6.1
(3)parcel製作工具

1.jdk1.8

下載jdk1.8版本並上傳到虛擬機器的指定目錄下,我的目錄是/app
解壓jdk到當前目錄
tar -zxvf /app/jdk-8u151-linux-x64.tar.gz -C .
重新命名
mv jdk1.8.0_151/ jdk

配置系統環境變數
vim /etc/profile
在最後新增:
export JAVA_HOME=/app/jdk
export PATH=$PATH:$JAVA_HOME/bin:
儲存並退出

刷新系統變數
source /etc/profile

驗證
java -version

輸出如下結果證明配置完成
java version "1.8.0_151"
Java(TM) SE Runtime Environment (build 1.8.0_151-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.151-b12, mixed mode)

2.maven

下載maven,我使用的是maven3.6.1,上傳到虛擬機器的指定目錄下,我的目錄是/app
解壓maven到當前目錄
tar -zxvf apache-maven-3.6.1-bin.tar.gz -C .
重新命名
mv apache-maven-3.6.1 maven

配置系統環境變數
vim /etc/profile
在最後新增:
export MVN_HOME=/app/maven
export PATH=$PATH:$MVN_HOME/bin:$JAVA_HOME/bin:
儲存並退出

刷新系統變數
source /etc/profile

驗證
mvn -version

輸出如下結果證明配置完成
Apache Maven 3.6.1 (d66c9c0b3152b2e69ee9bac180bb8fcc8e6af555; 2019-04-05T03:00:29+08:00)
Maven home: /app/maven
Java version: 1.8.0_151, vendor: Oracle Corporation, runtime: /app/jdk/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-957.el7.x86_64", arch: "amd64", family: "unix"

3.flink 相關下載

注:可不需要提前下載
flink下載地址:https://archive.apache.org/dist/flink/flink-1.12.0/flink-1.12.0-bin-scala_2.12.tgz
parcel製作工具下載地址:https://github.com/pkeropen/flink-parcel.git(github提供的工具包)

4.製作parcel

parcel製作方式大致有兩種,第一種是使用源生的製作方法,製作過程繁瑣複雜,第二種是使用廣大網友製作好的parcel製作工具,本文使用後者

下載製作工具:
git clone https://github.com/pkeropen/flink-parcel.git
完成後會在當前目錄生成一個flink-parcel的檔案,證明下載成功

修改配置檔案
cd ./flink-parce
vim flink-parcel.properties
進行相應修改,內容如下:
#FLINK 下載地址
FLINK_URL=https://archive.apache.org/dist/flink/flink-1.12.0/flink-1.12.0-bin-scala_2.12.tgz

#flink版本號
FLINK_VERSION=1.12.0

#擴充套件版本號
EXTENS_VERSION=BIN-SCALA_2.12

#作業系統版本,以centos為例
OS_VERSION=7

#CDH 小版本
CDH_MIN_FULL=5.2
CDH_MAX_FULL=6.3.3

#CDH大版本
CDH_MIN=5
CDH_MAX=6


儲存並退出

然後進行build
./build.sh  parcel
下載並打包完成後會在當前目錄生成FLINK-1.11.3-BIN-SCALA_2.12_build檔案

構建flink-yarn csd包
./build.sh csd_on_yarn
執行完成後會生成FLINK_ON_YARN-1.12.0.jar

將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/

將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

上傳到正式環境伺服器(區域網yum提供的節點)

5.整合cm

將上傳的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識別)

注:此時在cm新增服務可能無法看到有flink服務,需要重啟叢集的agent以及cm server

重新啟動cm後即可看到flink,並可以執行新增操作了

6.問題

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服務即可解決