Flink设计与实现:核心原理与源码解析
上QQ阅读APP看书,第一时间看更新

1.3.1 源码编译

Flink源码编译过程比较简单,主要涉及从GitHub上拉取Flink源码,运行Maven编译命令。

1.准备编译环境

在运行环境中安装JDK和Maven编译工具,确保JDK版本在1.8以上,Maven编译工具版本在3.0以上。

2.下载Flink源码

执行Git命令,下载最新版本的Flink源码,本书中用到的版本为1.10。下载完成后,将代码分支切换为release-1.10版本。


$ git clone https://github.com/apache/flink.git

由于网络延时等原因,下载过程中可能会出现中断的情况,再尝试几次即可。通常情况下,源码下载过程还是比较顺利的。

3.Flink源码编译

进入Flink源码项目路径进行编译。如果不对源码进行编译,在IDEA编译器中会出现Class未被发现的情况,影响阅读源码。执行以下Maven编译命令对源码进行编译,添加-DskipTests参数加速编译速度。


$ mvn clean install -DskipTests

通过以下命令可以同时屏蔽QA plugins、JavaDocs等编译插件,以达到加速的目的。


$ mvn clean install -DskipTests -Dfast

也可以通过-Dhadoop.version=2.6.5-custom参数指定Hadoop版本,但后续Flink版本中不再推荐使用这种方式,而是改为`export HADOOP_CLASSPATH=hadoop classpath`方式。通过如下命令从外部引入Hadoop依赖安装包。


mvn clean install -Dhadoop.version=2.6.5-custom

Flink中有部分代码是用Scala编写的,在Flink 1.7版本以前Scala默认为2.11版本。可通过设定-Dscala-2.12参数将Scala版本指定为2.12,代码如下。本书源代码对Scala版本没有明确要求。


mvn clean install -DskipTests -Dscala-2.12