web-dev-qa-db-fra.com

Impossible de trouver ou de charger la classe principale org.Apache.hadoop.util.VersionInfo

J'ai suivi " http://codesfusion.blogspot.com/2013/10/setup-hadoop-2x-220-on-ubuntu.html " pour installer hadoop sur Ubuntu. Mais, en vérifiant la version de hadoop, j'obtiens l'erreur suivante:

Erreur: Impossible de trouver ou de charger la classe principale org.Apache.hadoop.util.VersionInfo

Aussi, quand j'essaye: hdfs namenode -format

Je reçois l'erreur suivante:

Erreur: Impossible de trouver ou de charger la classe principale org.Apache.hadoop.hdfs.server.namenode.NameNode

La version Java utilisée est:

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

C'est un problème de configuration des variables d'environnement. Apparemment, je n’en ai trouvé aucun qui puisse fonctionner jusqu’à maintenant. J'essayais 2.6.4. Voici ce que nous devrions faire

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

Ajoutez-les dans votre .bashrc et n'oubliez pas de le faire 

source ~/.bashrc

Je pense que votre problème sera résolu comme le mien.

8
Somum

Vous n'avez probablement pas suivi les instructions correctement. Voici quelques conseils pour nous aider/pour vous aider à diagnostiquer ceci:

  • Dans le shell dans lequel vous avez exécuté hadoop version, exécutez export et affichez la liste des variables d'environnement pertinentes. 

  • Montrez-nous ce que vous avez mis dans le fichier /usr/local/hadoop/etc/hadoop/hadoop-env.sh.

  • Si aucun des éléments ci-dessus ne vous donne/nous des indices, recherchez et utilisez un éditeur de texte pour modifier (temporairement) le script shell hadoop. Ajoutez la ligne "set -xv" quelque part près du début. Ensuite, lancez hadoop version et montrez nous ce qu’il produit.

6
Stephen C

Je faisais face au même problème. Bien que cela puisse paraître si simple, il m'a pris 2 heures de mon temps. J'ai essayé toutes les choses ci-dessus mais ça n'a pas aidé. 

Je viens de quitter le shell dans lequel je me trouvais et j'ai réessayé en me connectant à nouveau au système. Ensuite, les choses ont fonctionné! 

3
lambzee

Ajouter cette ligne à ~/.bash_profile a fonctionné pour moi.

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

Alors juste:

  1. $ Sudo open ~/.bash_profile puis ajoutez la ligne précitée
  2. $ source ~/.bash_profile

J'espère que cela t'aides (:

2
chinglun

J'ai eu le même problème avec hadoop 2.7.2 Après avoir appliqué le truc montré, j'étais capable de démarrer des hdfs mais plus tard, j'ai découvert qu'il manquait quelques pièces importantes dans l'archivage que j'utilisais. Ainsi, le téléchargement de la 2.7.3 a fonctionné comme prévu.

Ma première suggestion est de télécharger à nouveau le fichier tar.gz dans la même version ou le même logiciel majeur. 

Si vous continuez à lire ... voici comment j'ai résolu le problème ........ Après une nouvelle installation, Hadoop n'a pas été en mesure de trouver les pots. J'ai fait ce petit tour:

J'ai localisé où sont les pots
J'ai créé un lien symbolique du dossier vers $ HADOOP_HOME/share/hadoop/common

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

pour la commande de version dont vous avez besoin de hadoop-common-2.7.2.jar, cela m'a aidé à trouver où les jars étaient stockés.

Après ça...

$ 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

Bien sûr, toute commande hadoop/hdfs fonctionne maintenant. 

Je suis à nouveau un homme heureux, je sais que ce n'est pas une solution polie mais fonctionne au moins pour moi.

1
ozw1z5rd

Essayez de vérifier:

  • Java_HOME, toutes les variables liées à PATH dans la configuration Hadoop
  • run: . ~/.bashrc (notez le point devant) pour rendre ces variables disponibles dans votre environnement. Il semble que le guide ne mentionne pas cela.
1
yǝsʞǝlA

J'ai eu cette erreur, j'ai corrigé ça en éditant ~/.bashrc Comme suit 

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

puis ouvrez le terminal et écrivez cette commande

source ~/.bashrc

puis vérifier 

hadoop version
0
Elsayed

J'ai utilisé

export PATH=$HADOOP_HOME/bin:$PATH

Au lieu de 

export PATH=$PATH:$HADOOP_HOME/bin

Ensuite, cela a fonctionné pour moi!

0
Giri