CDH6.2.1部署flink 1.13

自制Flink Parcel集成CDH(Flink1.13.2 + CDH6.2.1+Scala2.11)

测试系统安装

为了方便,我本地测试环境一般都用Oracle VM VirtualBox来安装虚拟机,加上vagrant软件,可以通过几行代码配置的方式,一键启动各种虚拟机环境,不需要自己手动一个个系统安装。

安装软件

  • Oracle VM VirtualBox: 最新版,官网下载就可以了
  • vagrant:最新版,官网下载就可以了

安装之后,还需要修改一下这2个软件的缓存目录的环境变量,不然全部缓存放到c盘,迟早有一天会爆。

参考文献:

安装虚拟机

下文以windows为例,找一个位置,创建一个空文件夹,用来存放所有的vagrant box不同虚拟机的的配置文件,然后创建我们测试用虚拟机。

# 创建存放配置的文件夹
mkdir centos7

# 初始化配置文件
vagrant init centos7

# 启动虚拟机
vagrant up

测试环境已经创建好了,账户: vagrant, 密码: vagrant

修改root用户的登录密码命令

sudo -s passwd

关于软件的使用,参考上面的文件。

注意事项

由于官方的generic/centos7镜像默认是不开启ssh,需要自己在VirtualBox软件上面,进入虚拟机先修改才能用ssh登录。

环境安装

安装JDK1.8

为了保持和CDH安装的时候那个jdk环境一样,选用一模一样的安装包,下载地址:oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm

把文件上传到/home/tools目录下

安装jdk

[root@centos7 tools]# rpm -ivh oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm

注意:jdk默认会被安装到/usr/java目录中。

配置jdk环境变量,在/etc/profile文件末尾增加下面内容

[root@centos7 tools]# vi /etc/profile
#.....
export JAVA_HOME=/usr/java/jdk1.8.0_181-cloudera
export PATH=.:$PATH:$JAVA_HOME/bin

重新加载环境变量

[root@centos7 tools]# source /etc/profile

验证jdk是否安装成功

[root@centos7 tools]# java -version
java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)

安装Maven

Maven 下载 Maven 下载地址:http://maven.apache.org/download.cgi

下载并解压

# wget https://dlcdn.apache.org/maven/maven-3/3.8.6/binaries/apache-maven-3.8.6-bin.tar.gz
# tar -xvf  apache-maven-3.8.6-bin.tar.gz
# sudo mv -f apache-maven-3.8.6 /usr/local/

编辑 /etc/profile 文件 sudo vim /etc/profile,在文件末尾添加如下代码:

export MAVEN_HOME=/usr/local/apache-maven-3.8.6
export PATH=${PATH}:${MAVEN_HOME}/bin

保存文件,并运行如下命令使环境变量生效:

# source /etc/profile

在控制台输入如下命令,如果能看到 Maven 相关版本信息,则说明 Maven 已经安装成功:

# mvn -v

安装cm_ext

Cloudera提供的cm_ext工具,对生成的csd和parcel进行检验

mkdir -p ~/github/cloudera
cd ~/github/cloudera

# clone cm_ext
git clone https://github.com/cloudera/cm_ext.git

# 打包
cd cm_ext
mvn package -Dmaven.test.skip=true

Tips:build_parcel.sh和 build_csd.sh脚本文件里面执行jar包路径默认是~/github/cloudera/

制作parcel

parcel制作方式大致有两种,第一种是使用源生的制作方法,制作过程繁琐复杂,第二种是使用广大网友制作好的parcel制作工具,本文使用后者

先创建临时文件夹,如果跟着上文操作的可以跳过创建文件夹
mkdir -p ~/github/cloudera
cd ~/github/cloudera

下载制作工具:
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.13.2/flink-1.13.2-bin-scala_2.11.tgz

#flink版本号
FLINK_VERSION=1.13.2

#扩展版本号
EXTENS_VERSION=BIN-SCALA_2.11

#操作系统版本,以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.13.2-BIN-SCALA_2.11_build文件

构建flink-yarn csd包
./build.sh csd_on_yarn
执行完成后会生成FLINK_ON_YARN-1.13.2.jar

将FLINK-1.13.2-BIN-SCALA_2.11_build打包
tar -cvf ./FLINK-1.13.2-BIN-SCALA_2.11.tar ./FLINK-1.13.2-BIN-SCALA_2.11_build/

将FLINK-1.13.2-BIN-SCALA_2.11.tar 
FLINK_ON_YARN-1.12.0.jar下载,这两个包就是目标包

上传到正式环境服务器(局域网yum提供的节点)

集成cm

把下载好的FLINK-1.13.2-BIN-SCALA_2.11.tar , FLINK_ON_YARN-1.12.0.jar放到自己的apache www目录下面,和安装cdh一样的,如果有NAS的可以开启webdav服务,更加方便了。

解压FLINK-1.13.2-BIN-SCALA_2.11.tar文件,得到FLINK-1.13.2-BIN-SCALA_2.11_build文件夹

# 每个节点操作一次,把parcel安装包下载到节点上
mv FLINK-1.13.2-BIN-SCALA_2.11-el7.parcel /opt/cloudera/parcel-repo/
mv FLINK-1.13.2-BIN-SCALA_2.11-el7.parcel /opt/cloudera/parcel-repo/

#登录服务器,将FLINK_ON_YARN-1.13.2.jar上传到cm主节点的/opt/cloudera/csd/目录下(目的是让cm识别)
mv FLINK_ON_YARN-1.13.2.jar /opt/cloudera/csd/

重启server和agent
systemctl restart cloudera-scm-server
systemctl restart cloudera-scm-agent

登录cm
在parcel配置界面添加flink的parcel源
然后进行下载→分配→解压→激活

然后可以开始安装了

可能会出现的问题

缺少jar包

缺yarn的依赖和缺少flink连接hadoop3的包还有一个hadoop-common-3.0.0-cdh6.2.1.jar commons-cli-1.4.jar flink-shaded-hadoop-3-uber-3.1.1.7.2.9.0-173-9.0.jar(所有flink节点都需要添加),可以自行下载这两个包(联系博主也可以)

mv hadoop-common-3.0.0-cdh6.2.1.jar commons-cli-1.4.jar flink-shaded-hadoop-3-uber-3.1.1.7.2.9.0-173-9.0.jar /opt/cloudera/parcels/FLINK/lib/flink/lib/

添加完成后再重试还会报一个与Kerberos相关的错误,由于我的集群并没有开启Kerberos,所以需要到flink的配置界面中把Kerberos相关的配置删除,完后再重启就能够正常启动了。

如果启动有问题,多查看/var/log/flink/下面的日志

8081端口冲突导致启动失败

如果你和我一样是3节点的,检查一下CM后台flink的配置,把yarn.taskmanagers改成2(总节点数-1),因为默认值是1,导致多出来的那个节点要抢rest.port服务端口导致其中有一台机启动失败。

CDH flink配置设置:

flink-yarn 服务环境高级配置代码段

HADOOP_USER_NAME=flink
HADOOP_CONF_DIR=/etc/hadoop/conf
HADOOP_HOME=/opt/cloudera/parcels/CDH
HADOOP_CLASSPATH=/opt/cloudera/parcels/CDH/jars/*

资料

results matching ""

    No results matching ""