由於在編譯時須要下載許多依賴包,在執行編譯前最好先配置下代理倉庫java
<mirrors> <mirror> <id>nexus-aliyun</id> <mirrorOf>*</mirrorOf> <name>Nexus aliyun</name> <url>https://maven.aliyun.com/repository/public</url> </mirror> </mirrors>
由於flink依賴flink-shaded工程,基本的依賴項都是在這個工程裏面定義的,因此要先編譯這個工程git
在寫文章時,最新的release版本是8.0,裏面用的hadoop及zookeeper對應版本以下github
<properties> <avro.version>1.8.2</avro.version> <slf4j.version>1.7.15</slf4j.version> <log4j.version>1.2.17</log4j.version> <hadoop.version>2.4.1</hadoop.version> <zookeeper.version>3.4.10</zookeeper.version> <findbugs.version>1.3.9</findbugs.version> </properties>
將hadoop和zk改爲本身CDH6.2.0對應的版本,修改flink-shaded-hadoop-2工程的pom文件apache
<properties> <avro.version>1.8.2</avro.version> <slf4j.version>1.7.15</slf4j.version> <log4j.version>1.2.17</log4j.version> <hadoop.version>3.0.0</hadoop.version> <zookeeper.version>3.4.5</zookeeper.version> <findbugs.version>1.3.9</findbugs.version> </properties>
修改flink-shaded-hadoop-2和flink-shaded-hadoop-2-uber工程中依賴的外部變量名稱json
<artifactId>flink-shaded-hadoop-2-uber</artifactId> <name>flink-shaded-hadoop-2-uber</name> <packaging>jar</packaging> <version>${hadoop.version}-9.0</version>
<artifactId>flink-shaded-hadoop-2</artifactId> <name>flink-shaded-hadoop-2</name> <packaging>jar</packaging> <version>${hadoop.version}-9.0</version>
進入flink-shaded目錄執行編譯maven
mvn clean install -DskipTests -Drat.skip=true -Pvendor-repos -Dhadoop.version.cdh=3.0.0
效果圖oop
修改對應的hadoop和flink.shaded.version值爲咱們須要的值測試
<hadoop.version>3.0.0</hadoop.version> ... <flink.shaded.version.old>7.0</flink.shaded.version.old> <flink.shaded.version>9.0</flink.shaded.version> ... <hivemetastore.hadoop.version>3.0.0</hivemetastore.hadoop.version>
由於只想更新hadoop的版本,因此依賴的其餘flink-shaded版本不作變動,如下jackson舉例說明,仍是用舊的版本(用最新的編譯沒有編譯過)url
<dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-shaded-jackson</artifactId> <version>${jackson.version}-${flink.shaded.version.old}</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-shaded-jackson-module-jsonSchema</artifactId> <version>${jackson.version}-${flink.shaded.version.old}</version> </dependency>
修改flink-connectors/flink-hbase中依賴的hbase版本號代理
<properties> <hbase.version>2.1.2</hbase.version> </properties>
以後須要修改這個工程中的AbstractTableInputFormat.java,TableInputFormat.java以及junit中的編譯錯誤
修改版本號
修改tools/change-version.sh中新舊版本號
OLD="1.9-SNAPSHOT" NEW="1.9-H3"
執行腳本change-version.sh
註釋掉不須要編譯的工程,由於這個編譯太耗時間,能夠把測試相關的包去掉
執行編譯
mvn clean install -DskipTests -Pvendor-repos -Drat.skip=true -Pinclude-hadoop
編譯結果
在工程中使用新編譯出的版本
<properties> <flink.version>1.9-H3</flink.version> </properties>
對應修改後的代碼地址github 版本:release-1.9