Ich bin ein Anfänger mit hadoop und versuche, hadoop in meinem Ubuntu als Einzelknotencluster zu installieren und auszuführen. Das ist mein JAVA_HOME in meinem hadoop_env.sh
%Vor%Aber wenn ich es starte, kommen die folgenden Fehler -
%Vor%Wie kann ich diesen Fehler entfernen?
Ich debuggte den Code und fand heraus, dass, obwohl JAVA_HOME in der Umgebung festgelegt ist, der Wert verloren geht, da ssh-Verbindungen zu anderen Hosts innerhalb des Codes hergestellt werden und die JAVA_HOME-Variable, die in start-dfs gut angezeigt wurde. sh wurde in hadoop-env.sh unscharf.
Die Lösung für dieses Problem besteht darin, die Variable JAVA_HOME in hadoop- env.sh zu setzen, und sie sollte ordnungsgemäß funktionieren.
Ich hatte den gleichen Fehler und löste es mit Soil Jains Bemerkung, aber um es noch ein bisschen klarer zu machen: Die hadoop-env.sh verwendet einen Ausdruck wie
%Vor%Wenn Sie den Pfad zu Ihrer JVM-Installation fest codieren, funktioniert
%Vor%Diese Auflösung nach Umgebungsvariablen scheint zu scheitern. Hard-Codierung hat das Problem für mich behoben.
Aktualisieren Sie in Ihrem HADOOP_HOME / conf Verzeichnis die Datei hadoop-env.sh
. Es hat einen Eintrag, um JAVA_HOME zu exportieren.
Die Einstellung auf JAVA_HOME in dieser Datei sollte Ihr Problem lösen.
Laden Sie hadoop_env.sh
? Sie verweisen möglicherweise auf hadoop-env.sh
(Bindestrich statt Unterstrich - das ist unter conf-Verzeichnis)
BTW, Dies ist eine sehr nützliche Anleitung für die schnelle Installation:
Die obigen Antworten sollten so lange funktionieren, wie Sie das Standardverzeichnis conf $HADOOP_HOME/conf
oder $HADOOP_HOME/etc/hadoop
verwenden. Hier sind ein paar Dinge, die Sie tun sollten, wenn Sie einen anderen conf-Ordner verwenden.
hadoop-env.sh
aus dem Standardverzeichnis conf in den Ordner conf, sagen Sie /home/abc/hadoopConf
. Ersetzen Sie die Zeile
%Vor%mit den folgenden:
%Vor% Ändern Sie die Werte entsprechend. Wenn Sie weitere Umgebungsvariablen für hadoop konfiguriert haben, die in Ihrem .bashrc
oder .profile
oder .bash_profile
konfiguriert sind, können Sie diese neben den obigen Zeilen hinzufügen.
Ich benutze hadoop 2.8.0. Obwohl ich JAVA_HOME exportiert habe (ich habe es in .bashrc eingefügt), habe ich immer noch diesen Fehler beim Ausführen von start-dfs.sh entdeckt.
%Vor%Der einzige Weg, wie ich es zum Laufen bringen konnte, war, JAVA_HOME = path_to_java zu etc / hadoop / hadoop-env.sh hinzuzufügen und dann zu quellen:
%Vor%Vielleicht war das (Sourcing hadoop- env.sh) in den obigen Beiträgen enthalten. Ich dachte nur, jemand sollte es laut sagen. Jetzt läuft es. Ich habe andere Probleme (vermutlich wegen der begrenzten Ressourcen auf dem Server, den ich benutze) gefunden, aber zumindest bin ich an diesem vorbeigekommen.
Zuerst müssen Sie JAVA_HOME in Ihrem hadoop_env.sh
festlegen. (Ihr lokaler JAVA_HOME in .bashrc würde wahrscheinlich irgendwie ignoriert werden)
Dann setze HADOOP_CONF_DIR
point auf das Verzeichnis deiner hadoop_env.sh
. Fügen Sie in ~ / .bashrc die folgende Zeile hinzu:
Dabei ist /usr/local/hadoop/etc/hadoop
das Verzeichnis, das hadoop_env.sh
Tags und Links java hadoop installation