Bei Apache: Big Data North America im Mai 2017 werde ich Ihnen zeigen, wie sehr sich die Situation geändert hat, seit ich über Apache Hadoop gesprochen habe, das Java 9 derzeit nicht unterstützt, und das ist eine Menge Arbeit.
Präsentationsmaterial beim Lesen des Hadoop-Quellcodes im März 2017 (Japanisch)
Kompilieren wir es mit Ihrem MacBook Pro (High Sierra). Probieren Sie die folgenden Versionen aus.
mbpaa:hadoop$ java -version
java version "9.0.1"
Java(TM) SE Runtime Environment (build 9.0.1+11)
Java HotSpot(TM) 64-Bit Server VM (build 9.0.1+11, mixed mode)
Es ist mein erstes Mal, dass ich Java 9 nach seiner offiziellen Veröffentlichung berühre.
Revert HADOOP-14986
Hmmm, ich fiel wie nie zuvor ...
mbpaa:hadoop$ mvn install -DskipTests
[INFO] Scanning for projects...
(snip)
[INFO] --- animal-sniffer-maven-plugin:1.16:check (signature-check) @ hadoop-annotations ---
[INFO] Checking unresolved references to org.codehaus.mojo.signature:java18:1.0
[ERROR] /Users/ajisaka/git/hadoop/hadoop-common-project/hadoop-annotations/src/main/java/org/apache/hadoop/classification/tools/RootDocProcessor.java:56: Undefined reference: com.sun.javadoc.RootDoc
[ERROR] /Users/ajisaka/git/hadoop/hadoop-common-project/hadoop-annotations/src/main/java/org/apache/hadoop/classification/tools/RootDocProcessor.java:104: Undefined reference: com.sun.javadoc.Doc
[ERROR] /Users/ajisaka/git/hadoop/hadoop-common-project/hadoop-annotations/src/main/java/org/apache/hadoop/classification/tools/RootDocProcessor.java:106: Undefined reference: com.sun.javadoc.Doc
Anscheinend funktioniert das in HADOOP-14986. JDK-Einschränkungen erzwingen hinzugefügte Animal-Sniffer-Maven-Plugin unter Java 9 nicht. Ich werde versuchen, vorerst zur Hand zu gehen.
mbpaa:hadoop$ git revert b50def36970e0afa65bd3fd3f40d8c4f81119200
Apply HADOOP-12760
Der nächste Fehler ist hier.
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project hadoop-common: Compilation failure: Compilation failure:
[ERROR] /Users/ajisaka/git/hadoop/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/nativeio/NativeIO.java:[333,17] cannot find symbol
[ERROR] symbol: class Cleaner
[ERROR] location: package sun.misc
[ERROR] /Users/ajisaka/git/hadoop/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/crypto/CryptoStreamUtils.java:[40,21] cannot find symbol
[ERROR] symbol: class Cleaner
[ERROR] location: package sun.misc
Dies ist ein bekannter Fehler. HADOOP-12760. Sun.misc.Cleaner ist an einen neuen Speicherort in OpenJDK 9 umgezogen wird das Problem lösen. Machen wir das. dev-support / bin / smart-apply-patch
ist nützlich. Ich füge dev-support / bin
zu PATH
hinzu.
mbpaa:hadoop$ smart-apply-patch HADOOP-12760
Processing: HADOOP-12760
HADOOP-12760 patch is being downloaded at Sat Dec 2 23:19:19 JST 2017 from
https://issues.apache.org/jira/secure/attachment/12850964/HADOOP-12760.03.patch -> Downloaded
Applying the patch:
Sat Dec 2 23:19:20 JST 2017
cd /Users/ajisaka/git/hadoop
patch -p1 -E
patching file hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/crypto/CryptoStreamUtils.java
patching file hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/nativeio/NativeIO.java
Hunk #1 succeeded at 38 with fuzz 1 (offset 1 line).
Hunk #2 succeeded at 316 (offset 3 lines).
Hunk #3 succeeded at 330 (offset 3 lines).
patching file hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/CleanerUtil.java
Apply HDFS-11610
Der nächste Fehler ist hier.
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:testCompile (default-testCompile) on project hadoop-hdfs: Compilation failure: Compilation failure:
[ERROR] /Users/ajisaka/git/hadoop/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestDFSClientFailover.java:[66,31] package sun.net.spi.nameservice does not exist
Dies ist auch ein bekannter Fehler. Wenden Sie den Patch an HDFS-11610. Sun.net.spi.nameservice.NameService wurde an einen neuen Speicherort verschoben.
mbpaa:hadoop$ smart-apply-patch HDFS-11610
Processing: HDFS-11610
HDFS-11610 patch is being downloaded at Sat Dec 2 23:27:05 JST 2017 from
https://issues.apache.org/jira/secure/attachment/12879343/HDFS-11610.001.patch -> Downloaded
Applying the patch:
Sat Dec 2 23:27:06 JST 2017
cd /Users/ajisaka/git/hadoop
git apply --binary -v --stat --apply -p1 /tmp/yetus-30092.22999/patch
Hunk #1 succeeded at 600 (offset 5 lines).
Applied patch hadoop-hdfs-project/hadoop-hdfs/pom.xml cleanly.
hadoop-hdfs-project/hadoop-hdfs/pom.xml | 19 ++++++++++++++++++-
1 file changed, 18 insertions(+), 1 deletion(-)
Ich konnte es erfolgreich kompilieren.
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 08:05 min
[INFO] Finished at: 2017-12-02T23:35:42+09:00
[INFO] Final Memory: 185M/616M
[INFO] ------------------------------------------------------------------------
HADOOP-11875. Fügen Sie eine zweite Kopie von Hamlet ohne _ als einstellige Kennung hinzu können zusammengeführt oder einige Maven-Plugins Dank der aktualisierten Version müssen weniger Schritte kompiliert werden.
Dank des Updates auf der Java-Seite ist es außerdem nicht mehr erforderlich, die Kompilierungsoption "--add-opens" hinzuzufügen.
Ich möchte die oben genannten drei Korrekturen so schnell wie möglich in der Community zusammenführen. Aktualisieren Sie auch die Bibliothek. Log4J und JUnit sind besonders schwierig. Vor kurzem war ich mit anderen Arbeiten als Aktivitäten in der Apache Hadoop-Community beschäftigt und hatte keine Zeit. .. ..
Für vielbeschäftigte Leute habe ich einen Patch auf den Punkt gebracht, der diese drei zusammenfasst.
Als nächstes möchte ich Apache Hadoop ausführen.
Recommended Posts