Flink1.9发布,你是否很想用?可是你的hadoop版本是cdh版本,没法编译成功怎么办?按照这篇文章,你会一次性的完成源码编译的工作!!!
Flink重大版本发布
在阿里开源并贡献Blink至社区以后,大家都在等待社区版和Blink版本什么时候能merge到一起,让劳苦大众也体验一把飞翔的感觉!终于,它来啦,就在2019年8月,Flink社区发布了1.9版本,据说更改了150万行代码,所以毫无犹豫直接把Flink1.9使用到公司的项目中!
源码下载
登录github的flink项目:Flink1.9 release版本
- 直接点击下载zip包;
- 如果你的环境是linux,那直接使用命令即可下载。
wget https://github.com/apache/flink/archive/release-1.9.0.zip
- 解压
unzip release-1.9.0.zip -d ./
修改pom文件
- 由于Flink源码采用maven构建工程,所以首先确保你的服务器有maven环境;
mvn -v
- vim打开pom.xml文件,添加如下代码片段;
如果在后面编译的时候出现不能识别repository这个标签或者类似的问题时,请用IDE打开pom文件并手工添加,确保无maven不能识别的空格之类的东西。<repositories> <repository> <id>cloudera</id> <url>https://repository.cloudera.com/artifactory/cloudera-repos/</url> </repository> </repositories> <repository> <id>mvnrepository</id> <url>https://mvnrepository.com</url> </repository>
修改setting文件
- 修改本地maven的setting文件,删除如下类似的代码块;
此操作是避免后续编译的时候只能识别setting文件中配置的仓库地址,不能识别pom文件中配置的仓库地址。<mirror> <id>nexus-aliyun</id> <mirrorOf>*,!cloudera,!mvnrepository</mirrorOf> <name>Nexus aliyun</name> <url>http://maven.aliyun.com/nexus/content/groups/public</url> </mirror>
下载并编译flink-shade的源码
- 下载源码
wget https://archive.apache.org/dist/flink/flink-shaded-7.0/flink-shaded-7.0-src.tgz
- 解压缩后修改pom文件,增加cloudera的仓库
<repositories> <repository> <id>cloudera</id> <url>https://repository.cloudera.com/artifactory/cloudera-repos/</url> </repository> </repositories>
- 编译flink-shade源码
mvn clean install -DskipTests -Dhadoop.version=2.6.0-cdh5.14.2
开始编译
- 进入flink-release-1.9.0目录;
- 查看cdh版本
hadoop version
- 替换-Dhadoop.version的值为你的cdh版本,并执行编译脚本
mvn clean install -DskipTests -Pvendor-repos -Dhadoop.version=2.6.0-cdh5.14.2 -Dmaven.javadoc.skip=true -Dcheckstyle.skip=true
- 漫长的等待过程,出现下图即编译成功