flink1.10.1源码编译

本文介绍了如何在CDH6.3.2中集成Flink 1.10.1,由于官方未提供现成包,作者详细讲解了从准备阿里云香港服务器,安装JDK和Maven,到下载、编译Flink及所需依赖包的全过程。通过编译源码,读者可以得到适用于自己环境的Flink版本。

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.1flink-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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值