下載源碼
git clone -b release-1.11.1 https://github.com/apache/flink.git --depth=1 flink-1.11.1
編譯
mvn clean install -DskipTests -Dhadoop.version=2.6.0-cdh5.16.1 -Dscala-2.11
因為需要依賴cdh,所以在flink項目根目錄的pom.xml中添加如下內容:
異常
報錯信息 - 1:
[ERROR] Failed to execute goal on project flink-hadoop-fs: Could not
resolve dependencies for project
org.apache.flink:flink-hadoop-fs:jar:1.11.1: The following artifacts
could not be resolved:
org.codehaus.jackson:jackson-mapper-asl:jar:1.8.10-cloudera.1,
org.apache.hadoop:hadoop-common:jar:tests:2.6.0-cdh5.16.1: Could not
find artifact
org.codehaus.jackson:jackson-mapper-asl:jar:1.8.10-cloudera.1 in
repo.mfw (https://nexus.mfwdev.com/repository/maven-public/) -> [Help 1]
這個就是在沒有添加cdh的依賴所致,添加后就可以解決。
報錯信息 - 2:
[ERROR] Failed to execute goal
org.apache.maven.plugins:maven-compiler-plugin:3.8.0:compile
(default-compile) on project flink-table-api-java: Compilation failure
[ERROR]
/home/mfw_hadoop/wenhao/flink-1.11.1/flink-table/flink-table-api-java/src/main/java/org/apache/flink/table/operations/utils/OperationTreeBuilder.java:[631,85]
unreported exception X; must be caught or declared to be thrown
這是JDK的bug,在編譯機器上使用的是JDK版本為openjdk version “1.8.0_242”。JAVA_HOME卻設置為1.8.0_71。
將兩者統一為“1.8.0_242”后,解決該問題。
說明JDK為1.8.0_71是存在該問題的。
這也說明編譯機器的環境是有問題的,這個應當注意。
說明
因為考慮到flink將會在yarn上運行,所以在編譯時需要添加-Dhadoop.version=2.6.0-cdh5.16.1。這個版本應該與Hadoop集群版本一致。
從結果上看flink-1.11.1的編譯比以前更加簡單了。
其他
shaded
git clone https://github.com/apache/flink-shaded.git
mvn clean install -DskipTests -Dhadoop.version=2.6.0-cdh5.16.1
以前的flink版本中,還需要自己編譯shaded,這次編譯1.11.1,則不需要。不知是因為2.6.0-cdh5.16.1已經被編譯好了,還是其他原因。
javase下載地址
https://www.oracle.com/java/technologies/javase/javase8-archive-downloads.html
