Ich versuche, Hadoop zu installieren und auszuführen. Und ich bin sicher, dass ich Hadoop und formatiert Namenknoten erfolgreich installiert habe. Allerdings, wenn ich start-dfs.sh zu laufen versuchte, bekam ich den Fehler unten:hadoop kann nicht gestartet werden start-dfs.sh
localhost: starting namenode, logging to /usr/local/hadoop/logs/hadoop-wenruo-namenode-linux.out localhost: /usr/local/hadoop/bin/hdfs: line 304: /usr/local/hadoop/usr/lib/jvm/java-8-oracle/bin/java: No such file or directory
Mein JAVA_HOME unter:
echo $JAVA_HOME /usr/lib/jvm/java-7-openjdk-amd64
Meine hadoop-env.sh Datei:
export JAVA_HOME=${JAVA_HOME}
Wie könnte Hadoop noch nach JDK8 suchen, da ich JAVA_HOME bereits auf JDK7 gesetzt habe?
Vielen Dank.
Schwer zu sagen, ohne Dateien zu sehen (welche Hadoop-Version?). Überprüfe, woher dieser Pfad kommt '/ usr/local/hadoop/usr/lib/jvm/java-8-oracle/bin/java' mit dem Befehl grep im hadoop-Verzeichnis und aktualisiere dann deinen bashrc, indem du dein Java exportierst und deine Shells aktualisierst. Sie werden es also global haben. Fügen Sie außerdem ein Echo für JAVA_HOME direkt nach dem Exportieren in das Skript hinzu. –
@Nicolas Fontenele Hallo Nicolas, wie Sie sehen, ich Echo JAVA_HOME und bekomme JDK7, nicht JDK8. Keine Ahnung, warum Hadoop noch nach JDK8 sucht. – wenruo
Es beweist, dass in der aktuellen Umgebung JAVA_HOME korrekt ist. Aber wenn Sie zum Beispiel Hadoop von einer anderen Shell ausführen, hat es vielleicht ein anderes Java-Home exportiert. Hast du meinen Vorschlag genommen, von Java 8 zu grep und basbrc zu aktualisieren? Ist dies auch ein Single-Node-Setup? Wegen Ihrer lokalen Heimadresse, aber nicht in anderen Knoten wird es fehlschlagen, wie es sein sollte. –