CDH6.31集群flink服务编译添加过程
一、环境准备
1、环境:Jdk 1.8、centos7.6、Maven 3.6.3和Scala-2.11
2、源码和CDH 版本:Flink 1.10.0 、 CDH 6.3.1(Hadoop 3.0.0)
注:mvn版本、CDH版本和scala版本无所谓,理论上可根据自己的版本自行更改。
二、安装包准备;
1、maven版本不要太低,我用的是maven 3.6.3:
https://mirror.bit.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz2、不同的 Flink 版本使用的 Flink-shaded不同,1.10 版本使用 10.0:
https://mirrors.tuna.tsinghua.edu.cn/apache/flink/flink-shaded-10.0/flink-shaded-10.0-src.tgz3、flink1.10.0tar包:
https://mirrors.tuna.tsinghua.edu.cn/apache/flink/flink-1.10.0/flink-1.10.0-src.tgz三、安装MAVEN并修改源:已安装maven的可跳过安装步骤,但要 1、下载maven tar包,移动到安装目录(略过)。
2、解压tar
命令:tar -zxvf apache-maven-3.6.3-bin.tar.gz
查看命令:mvn --version4、修改setting.xml:
命令:vim apache-maven-3.6.3/conf/settings.xml 添加配置如下: alimaven aliyun maven http://maven.aliyun.com/nexus/content/groups/public/ central 四、编译对应的flink-shaded 版本
1、解压tar包
命令:tar -zxvf flink-shaded-10.0-src.tgz
2、修改pom.xml
命令:vim flink-shaded-10.0/pom.xml
添加如下配置: vendor-repos vendor-repos
<!-- Add vendor maven repositories --> <repositories> <!-- Cloudera --> <repository> <id>cloudera-releases</id> <url>https://repository.cloudera.com/artifactory/cloudera-repos</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>false</enabled> </snapshots> </repository> <!-- Hortonworks --> <repository> <id>HDPReleases</id> <name>HDP Releases</name> <url>https://repo.hortonworks.com/content/repositories/releases/</url> <snapshots><enabled>false</enabled></snapshots> <releases><enabled>true</enabled></releases> </repository> <repository> <id>HortonworksJettyHadoop</id> <name>HDP Jetty</name> <url>https://repo.hortonworks.com/content/repositories/jetty-hadoop</url> <snapshots><enabled>false</enabled></snapshots> <releases><enabled>true</enabled></releases> </repository> <!-- MapR --> <repository> <id>mapr-releases</id> <url>https://repository.mapr.com/maven/</url> <snapshots><enabled>false</enabled></snapshots> <releases><enabled>true</enabled></releases> </repository> </repositories> 3、编译:命令1:cd flink-shaded-10.0/
命令2: mvn -T2C clean install -DskipTests -Pvendor-repos -Dhadoop.version=3.0.0-cdh6.3.1 -Dscala-2.11 -Drat.skip=true
注:hadoop版本,cdh版本,scala版本根据自己的集群情况自行修改。
五、编译flink1.10.0源码
1、解压tar包;
命令:tar -zxvf flink-1.10.0-src.tgz
2、编译
命令1:cd flink-1.10.0/ 命令2:mvn clean install -DskipTests -Dfast -Drat.skip=true -Dhaoop.version=3.0.0-cdh6.3.1 -Pvendor-repos -Dinclude-hadoop -Dscala-2.11 -T2C 注:注意修改成自己对应的版本 编译时间有点长我编译了2小时左右
3、提取出flink1.10.0对应的二进制包到安装目录
目录地址:flink-1.10.0/flink-dist/target/flink-1.10.0-bin 打包的格式的是:flink-1.10.0-bin-scala_2.11.tgz tar zcvf flink-1.10.0-bin-scala_2.11.tgz flink-1.10.0/4.将生成的tar包flink-1.10.0-bin-scala_2.11.tgz存放在可以下载的地方,我是在本服务器搭建一个Nginx服务存放 名词介绍
六,flink-parcel制作过程
(1)parcel: 以".parcel"结尾的压缩文件。parcel包内共两个目录,其中lib包含了服务组件,meta包含一个重要的描述性文件parcel.json,这个文件记录了服务的信息,如版本、所属用户、适用的CDH平台版本等。
命名规则必须如下:
文件名称格式为三段,第一段是包名,第二段是版本号,第三段是运行平台。
例如:FLINK-1.10.0-bin-scala_2.11-el7.parcel
包名:FLINK
版本号:1.10.0-bin-scala_2.12
运行环境:el7
el6是代表centos6系统,centos7则用el7表示
parcel必须包置于/opt/cloudera/parcel-repo/目录下才可以被CDH发布程序时识别到。
(2)csd:csd文件是一个jar包,它记录了服务在CDH上的管理规则里面包含三个文件目录,images、descriptor、scripts,分别对应。如服务在CDH页面上显示的图标、依赖的服务、暴露的端口、启动规则等。 csd的jar包必须置于/opt/cloudera/csd/目录才可以在添加集群服务时被识别到。
以CDH6.3.1、FLINK1.10.0为例
(1)下载制作包
git clone https://github.com/pecanNBU/flink-parcel.git (2)修改配置文件 flink-parcel.properties (3)生成parcel文件
bash ./build.sh parcel
(4)生成csd文件 on yarn 版本 bash ./build.sh csd_on_yarn standalone版本 bash ./build.sh csd_standalone
七,CDH 中安装flink服务 此处假设你已经安装好CDH集群
(1) 将上面生成的parcel文件copy至 cloudera/parcel-repo子目录下
(2) 将上述生成的jar文件copy至cloudera /parcel-repo子目录下
(3) 在CDH中添加flink的parcel包:
打开CDH管理界面->集群->检查parcel包->flink->分配->激活
(4) 点击CDH所管理的集群添加服务,在列表中找到flink,按提示添加启动并运行。
说明:
(1) 在如果集群开启了安全,需要配置security.kerberos.login.keytab和security.kerberos.login.principal两个参数才能正正常启动。如未启动kerberos,则在CDH中添加FLINK服务时请清空这两个参数的内容
(2) If you plan to use Apache Flink together with Apache Hadoop (run Flink on YARN, connect to HDFS, connect to HBase, or use some Hadoop-based file system connector) then select the download that bundles the matching Hadoop version, download the optional pre-bundled Hadoop that matches your version and place it in the lib folder of Flink, or export your HADOOP_CLASSPATH(来自flink官网)