由于项目需要,需要用到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服务即可解决