0. 写在前面
由于项目需求,需要在CDH6.3.2中集成Flink1.10.1,但官方并没有现成的包,只能自己编译源码。
先提供几个包下载地址,如果你需要的刚好有,就没有必要自己动手了。
另外编译源码时建议使用阿里云香港服务器。
我刚开始编译的时候用的是公司服务器,下载包慢的要命,而且中途报错还重头再来,简直崩溃。用云服务器按量付费,顺利的话不到一个小时就弄完了。
1. 源码编译
1.1 准备阿里云香港服务器

1.2 安装基础环境
1.2.1 安装jdk并配置环境变量
wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u141-b15/336fa29ff2bb4ef291e347e091f7f4a7/jdk-8u141-linux-x64.tar.gz"
mkdir /software
mv jdk-8u141-linux-x64.tar.gz /software
cd /software
tar -xvf jdk-8u141-linux-x64.tar.gz
vi /etc/profile
# 配置环境变量
export JAVA_HOME=/software/jdk1.8.0_141/
export PATH=$PATH:$JAVA_HOME/bin
source /etc/profile
java -version
1.2.2 安装配置maven
- 安装maven
wget https://mirrors.aliyun.com/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
mv apache-maven-3.6.3-bin.tar.gz /software
cd /software
tar -xvf apache-maven-3.6.3-bin.tar.gz
vi /etc/profile
# 修改环境变量
export MAVEN_HOME=/software/apache-maven-3.6.3
export PATH=$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin
source /etc/profile
mvn -v
- 配置maven setting.xml
在mirrors标签下添加如下内容
<mirror>
<id>alimaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
</mirror>
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
<mirror>
<id>central</id>
<name>Maven Repository Switchboard</name>
<url>http://repo1.maven.org/maven2/</url>
<mirrorOf>central</mirrorOf>
</mirror>
<mirror>
<id>repo2</id>
<mirrorOf>central</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://repo2.maven.org/maven2/</url>
</mirror>
<mirror>
<id>ibiblio</id>
<mirrorOf>central</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://mirrors.ibiblio.org/pub/mirrors/maven2/</url>
</mirror>
<mirror>
<id>jboss-public-repository-group</id>
<mirrorOf>central</mirrorOf>
<name>JBoss Public Repository Group</name>
<url>http://repository.jboss.org/nexus/content/groups/public</url>
</mirror>
<mirror>
<id>google-maven-central</id>
<name>Google Maven Central</name>
<url>https://maven-central.storage.googleapis.com
</url>
<mirrorOf>central</mirrorOf>
</mirror>
<!-- 中央仓库在中国的镜像 -->
<mirror>
<id>maven.net.cn</id>
<name>oneof the central mirrors in china</name>
<url>http://maven.net.cn/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
1.3 下载、编译flink
因为flink源码编译时依赖flink-shaded包,所以要先编译flink-shaded包。
flink与flink-shade包的对应关系,可以在flink源码的pom文件查看。
1.3.1 准备包
我下载的是flink-1.10.1和flink-shaded-9.0,大家可以根据需要去archive flink下载。
wget https://archive.apache.org/dist/flink/flink-1.10.1/flink-1.10.1-src.tgz
wget https://archive.apache.org/dist/flink/flink-shaded-9.0/flink-shaded-9.0-src.tgz
tar -xvf flink-1.10.1-src.tgz
tar -xvf flink-shaded-9.0-src.tgz
- 查看对应的版本
可以先下载flink源码包,解压源码包之后,查看pom文件。搜索shaded.version
<flink.shaded.version>9.0</flink.shaded.version>
1.3.2 编译flink-shaded包
cd flink-shaded-9.0
- 将以下内容加入到flink-shaded的pom中的profiles标签下
<profile>
<id>vendor-repos</id>
<activation>
<property>
<name>vendor-repos</name>
</property>
</activation>
<!-- 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>
</profile>
- 编译flink-shaded
下面的3.0.0是hadoop版本,6.3.2是cdh版本,2.11是scala版本,根据自己需要修改
mvn -T2C clean install -DskipTests -Pvendor-repos -Dhadoop.version=3.0.0-cdh6.3.2 -Dscala-2.11 -Drat.skip=true
之后就开始编译了,需要一些时间,可以去厕所摸会鱼了。
输出BUILD SUCCESS即表示编译成功。
1.3.3 编译flink
要等上面flink-shaded包编译完才可以开始编译flink。
mvn clean install -DskipTests -Dfast -Drat.skip=true -Dhaoop.version=3.0.0-cdh6.3.2 -Pvendor-repos -Dinclude-hadoop -Dscala-2.11 -T2C
输出BUILD SUCCESS即表示编译成功。
1.3.4 拷出编译后的包
编译成功后,目标文件在./flink-dist/target/flink-1.10.1-bin/flink-1.10.1文件夹下。
将该文件夹打包下载。
cd ./flink-dist/target/flink-1.10.1-bin/flink-1.10.1
tar czfv flink-1.10.1-bin-cdh-6.3.2.tgz flink-1.10.1-bin
收工。
3. 最后
我编译的是1.10.1,整个过程还相对比较顺利。
大家有问题的可以参考下面的链接,也欢迎交流讨论。
4. 参考
https://blog.csdn.net/qq_17310871/article/details/106677165
https://blog.csdn.net/molidiyi/article/details/106014972
https://www.jianshu.com/p/050b77afe671
本文介绍了如何在CDH6.3.2中集成Flink 1.10.1,由于官方未提供现成包,作者详细讲解了从准备阿里云香港服务器,安装JDK和Maven,到下载、编译Flink及所需依赖包的全过程。通过编译源码,读者可以得到适用于自己环境的Flink版本。
1596

被折叠的 条评论
为什么被折叠?



