自己編譯flink的環境:Linux、git、maven、jdk8以上。
獲取flink源代碼:git clone https://github.com/apache/flink.git
克隆flink項目到本地,下載會等一會。
下載完成之后:
進入對應版本的分支
git tag 查看分支;git checkout release-1.9.2 進入release-1.9.2分支
此時我們用IDEA打開這個flink項目,右下角會發現分支為:一串奇怪的字符串,其實是分支的編號,即上圖中位於后的字符串,如圖所示。
編譯flink
確保進入flink項目目錄。
命令:mvn clean install -Dmaven.test.skip=true 跳過測試
命令:mvn clean install -Dmaven.test.skip=true -Dfast 跳過測試、QA插件、javadoc以加速構建,默認會將Hadoop2的支持打包進去
針對指定版本的Hadoop版本:mvn clean install -Dmaven.test.skip=true -DHadoop.version=2.6.1
這里指定支持Hadoop2.6.1,你得確保你有這個版本的hadoop。
針對指定的Hadoop發行版編譯flink:
命令:mvn clean install -Dmaven.test.skip=true -Pvendor-repos -DHadoop.version=2.6.1-cdh5.0.0
你可以使用命令行參數激活prom.xml中profile標簽的配置。
如果用戶主目錄是加密的,可能會報錯:java.io.IOException:File name too long exception。比如ubantu系統的encfs文件系統。那么那個模塊報的錯就修改哪個模塊的配置文件,如:flink-yarn模塊報的錯,則在它的prom.xml文件中的scala-maven-plugin的configuration標簽下添加:
<args> <arg>Xmax-classfile-name</arg> <arg>128</arg> </args>
編譯flink報錯匯總