第一步:JDK环境准备
特别说明一下:官网要求Flink编译和使用的时候JDK版本必须是1.8以上,所以这里我们使用的额是1.8.0.221版本,建议大家JDK用1.8.0.191或者1.8.0.221以上的版本。不要用低于1.8.0.191的版本,低于1.8.0.191版本编译没有问题,但运行Flink程序的时候会出问题。JDK配置完之后,要检查一下,确保你的版本是OK的。
#JAVA_HOME export JAVA_HOME=/opt/modules/jdk1.8.0_221 export PATH=$PATH:$JAVA_HOME/bin
[kfk@bigdata-pro-m03 ~]$ java -version java version "1.8.0_221" Java(TM) SE Runtime Environment (build 1.8.0_221-b11) Java HotSpot(TM) 64-Bit Server VM (build 25.221-b11, mixed mode)
第二步:Maven环境准备
Flink官网对Maven版本的要求是必须Maven3.x.x的,所以我分别测试了Maven3.2.5和Maven3.3.9这两个版本,编译都是没有问题。所以大家放心选择这两个版本。
需要对Maven中conf/settings.xml文件进行配置一下:
1)在Maven根目录创建一个仓库目录repository,配置的地址指定到这个repository目录
<localRepository>/opt/modules/apache-maven-3.3.9/repository</localRepository>
2)添加一个mirror
<mirror> <id>nexus-aliyun</id> <mirrorOf>*</mirrorOf> <name>Nexus aliyun</name> <url>http://maven.aliyun.com/nexus/content/groups/public</url> </mirror>
3)配置环境变量
#MAVEN_HOME export MAVEN_HOME=/opt/modules/apache-maven-3.3.9 export PATH=$PATH:$MAVEN_HOME/bin export MAVEN_OPTS="-Xmx4g -XX:MaxPermSize=1024M -XX:ReservedCodeCacheSize=1024m"
[kfk@bigdata-senior01 flink-1.9.0]$ mvn -version Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=1024M; support was removed in 8.0 Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-10T11:41:47-05:00) Maven home: /opt/modules/apache-maven-3.3.9
第三步:保证你的虚拟机可以访问外网,因为在编译的过程中要下载jar包的
具体怎么设置,这里就不多说 了!
第四步:下载Flink源码 Flink 1.9
下载地址:http://archive.apache.org/dist/flink/
第五步:开始编译
将源码tar包解压之后,我们进入的解压之后的工程根目录,开始执行命令:
注意:这里我们编译Hadoop指定的版本,也是Flink官网指定的可以编译Hadoop的几个版本,分别是Hadoop 2.4.1, 2.6.5, 2.7.5 or 2.8.3
我尝试了2.7.5和2.8.3的两个版本,编译都没有问题。只是在在编译过程中出现了一个小问题,稍等我们在说,好,我们选择一个2.8.3的版本开始编译,我再说说执行编译命令之前我们得环境:
JDK : 1.8.0.221 Maven : 3.3.9 Hadoop : 2.8.3 Flink源码版本:1.9
开始执行命令:
mvn clean install -DskipTests -Drat.skip=true -Dhadoop.version=2.8.3
慢慢等吧... 如果你的网络好,大概30多分钟
在这个过程中出现了一个问题,就是缺jar包的问题,编译过程会抛出这样一个错误:
[ERROR] Failed to execute goa