web-dev-qa-db-de.com

Hauptklasse org.Apache.hadoop.util.VersionInfo konnte nicht gefunden oder geladen werden

Ich folgte " http://codesfusion.blogspot.com/2013/10/setup-hadoop-2x-220-on-ubuntu.html ", um hadoop auf Ubuntu zu installieren. Bei der Überprüfung der hadoop-Version erhalte ich folgende Fehlermeldung:

Fehler: Hauptklasse konnte nicht gefunden oder geladen werden org.Apache.hadoop.util.VersionInfo

Auch wenn ich versuche: hdfs namenode -format

Ich erhalte folgende Fehlermeldung:

Fehler: Hauptklasse konnte nicht gefunden oder geladen werden org.Apache.hadoop.hdfs.server.namen.NameNode

Die verwendete Java-Version ist:

Java version "1.7.0_25"
OpenJDK Runtime Environment (IcedTea 2.3.10) (7u25-2.3.10-1ubuntu0.12.04.2)
OpenJDK 64-Bit Server VM (build 23.7-b01, mixed mode)
17
usb

Es ist ein Problem beim Einrichten von Umgebungsvariablen. Anscheinend habe ich keine gefunden, die bis JETZT funktionieren kann. Ich habe am 2.6.4 versucht. Folgendes sollten wir tun

export HADOOP_HOME=/home/centos/HADOOP/hadoop-2.6.4
export HADOOP_INSTALL=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
export HADOOP_CONF_DIR=$HADOOP_HOME
export HADOOP_PREFIX=$HADOOP_HOME
export HADOOP_LIBEXEC_DIR=$HADOOP_HOME/libexec
export Java_LIBRARY_PATH=$HADOOP_HOME/lib/native:$Java_LIBRARY_PATH
export HADOOP_CONF_DIR=$HADOOP_PREFIX/etc/hadoop

Fügen Sie diese in Ihre .bashrc ein und vergessen Sie nicht, dies zu tun 

source ~/.bashrc

Ich denke, dein Problem wird so gelöst wie ich.

8
Somum

Sie haben die Anweisungen wahrscheinlich nicht richtig befolgt. Hier sind einige Dinge, die Sie versuchen sollten, damit Sie uns/Sie können dies diagnostizieren:

  • Führen Sie in der Shell, die Sie hadoop version ausgeführt haben, export aus, und zeigen Sie uns die Liste der relevanten Umgebungsvariablen. 

  • Zeigen Sie uns, was Sie in der /usr/local/hadoop/etc/hadoop/hadoop-env.sh-Datei gespeichert haben.

  • Wenn Ihnen keiner der beiden Hinweise Hinweise gibt, suchen und verwenden Sie einen Texteditor, um das Shell-Skript hadoop wrapper (vorübergehend) zu ändern. Fügen Sie die Zeile "set -xv" irgendwo am Anfang ein. Führen Sie dann hadoop version aus und zeigen Sie uns, was es produziert.

6
Stephen C

Ich stand vor demselben Problem. Es mag zwar so einfach erscheinen, aber 2 Stunden meiner Zeit weggenommen haben. Ich habe alle oben genannten Dinge ausprobiert, aber es hat nicht geholfen. 

Ich verlasse gerade die Shell, in der ich war, und versuchte es erneut, indem ich mich erneut beim System anmeldete. Dann klappten die Dinge! 

3
lambzee

Das Hinzufügen dieser Zeile zu ~/.bash_profile funktionierte für mich.

export HADOOP_PREFIX=/<where ever you install hadoop>/hadoop

Also nur:

  1. $ Sudo open ~/.bash_profile und füge die vorgenannte Zeile hinzu
  2. $ source ~/.bash_profile

Hoffe das hilft (:

2
chinglun

Ich hatte das gleiche Problem mit hadoop 2.7.2 Nachdem ich den gezeigten Trick angewendet hatte, konnte ich hdfs starten. Später entdeckte ich jedoch, dass der von mir verwendeten Teerarchivierung einige wichtige Teile fehlten. Beim Download der 2.7.3 funktionierte alles so, wie es funktionieren soll.

Mein erster Vorschlag ist, die tar.gz-Version in derselben Version oder in größerem Umfang erneut herunterzuladen. 

Wenn Sie weiterlesen ... so wie ich das Problem gelöst habe ....__ Nach einer Neuinstallation konnte hadoop die Gläser nicht finden. Ich habe diesen kleinen Trick gemacht:

Ich habe gefunden, wo die Gläser sind
Ich habe einen symbolischen Link von dem Ordner auf .__ gemacht. $ HADOOP_HOME/share/hadoop/common

ln -s $HADOOP_HOME/share/hadoop/kms/Tomcat/webapps/kms/WEB-INF/lib $HADOOP_HOME/share/hadoop/common 

für den Versionsbefehl benötigen Sie hadoop-common-2.7.2.jar. Dies half mir zu finden, wo die Gläser gespeichert wurden.

Nachdem...

$ bin/hadoop version 
Hadoop 2.7.2
Subversion https://git-wip-us.Apache.org/repos/asf/hadoop.git -r b165c4fe8a74265c792ce23f546c64604acf0e41
Compiled by jenkins on 2016-01-26T00:08Z
Compiled with protoc 2.5.0
From source with checksum d0fda26633fa762bff87ec759ebe689c
This command was run using /opt/hadoop-2.7.2/share/hadoop/kms/Tomcat/webapps/kms/WEB-INF/lib/hadoop-common-2.7.2.jar

Natürlich funktioniert jetzt jeder hadoop/hdfs-Befehl. 

Ich bin wieder ein glücklicher Mann, ich weiß, dass dies keine höfliche Lösung ist, aber zumindest für mich funktioniert.

1
ozw1z5rd

Versuchen Sie zu überprüfen:

  • Java_HOME, alle PATH-bezogenen Variablen in der Hadoop-Konfiguration
  • führen Sie Folgendes aus: . ~/.bashrc (beachten Sie den Punkt vorne), um diese Variablen in Ihrer Umgebung verfügbar zu machen. Es scheint, dass der Führer dies nicht erwähnt.
1
yǝsʞǝlA

Ich habe diesen Fehler erhalten, ich habe das behoben, indem ich ~/.bashrc Wie folgt editierte 

export HADOOP_HOME=/usr/local/hadoop
export PATH=$HADOOP_HOME/bin:$PATH

Öffnen Sie dann das Terminal und schreiben Sie diesen Befehl

source ~/.bashrc

dann überprüfe 

hadoop version
0
Elsayed

Ich benutzte

export PATH=$HADOOP_HOME/bin:$PATH

Anstatt 

export PATH=$PATH:$HADOOP_HOME/bin

Dann hat es für mich funktioniert!

0
Giri

Ich habe die oben beschriebenen Umgebungsvariablen hinzugefügt, aber immer noch nicht funktioniert. Das Setzen des HADOOP_CLASSPATH wie folgt in meinem ~/.bashrc hat für mich funktioniert:

export HADOOP_CLASSPATH=$(hadoop classpath):$HADOOP_CLASSPATH

0