it-roy-ru.com

Не удалось найти или загрузить основной класс org.Apache.hadoop.util.VersionInfo

Я следовал " http://codesfusion.blogspot.com/2013/10/setup-hadoop-2x-220-on-ubuntu.html ", чтобы установить Hadoop в Ubuntu. Но после проверки версии hadoop я получаю следующую ошибку:

Ошибка: не удалось найти или загрузить основной класс org.Apache.hadoop.util.VersionInfo

Кроме того, когда я пытаюсь: hdfs namenode -format

Я получаю следующую ошибку:

Ошибка: не удалось найти или загрузить основной класс org.Apache.hadoop.hdfs.server.namenode.NameNode

Используемая версия Java:

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

Это проблема настройки переменных среды. Видимо, я не нашел тот, который может работать до сих пор. Я пытался на 2.6.4. Вот что мы должны сделать

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

Добавьте их в свой .bashrc и не забудьте сделать 

source ~/.bashrc

Я думаю, что ваша проблема будет решена, как и моя.

8
Somum

Вы, вероятно, не следовали инструкциям правильно. Вот несколько вещей, которые помогут нам/вам диагностировать это:

  • В командной консоли, в которой вы запускали hadoop version, запустите export и покажите нам список соответствующих переменных среды. 

  • Покажите нам, что вы положили в файл /usr/local/hadoop/etc/hadoop/hadoop-env.sh.

  • Если ничего из вышеперечисленного не дает вам/нам каких-либо подсказок, найдите и используйте текстовый редактор для (временного) изменения сценария оболочки оболочки hadoop. Добавьте строку "set -xv" где-нибудь ближе к началу. Затем запустите hadoop version и покажите нам, что он производит.

6
Stephen C

Я столкнулся с той же проблемой. Хотя это может показаться так просто, но забрал 2 часа моего времени. Я перепробовал все вышеперечисленное, но это не помогло. 

Я только что вышел из оболочки, в которой я был, и попытался снова, снова войдя в систему. Тогда все заработало! 

3
lambzee

Добавление этой строки в ~/.bash_profile работает для меня.

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

Так просто:

  1. $ Sudo open ~/.bash_profile, затем добавьте вышеупомянутую строку
  2. $ source ~/.bash_profile

Надеюсь это поможет (:

2
chinglun

У меня возникла та же проблема с hadoop 2.7.2 После того, как я применил показанный трюк, я смог запустить hdfs, но позже я обнаружил, что в архиве tar, который я использовал, отсутствовали некоторые важные части. Так что при загрузке 2.7.3 все работало как положено.

Мое первое предложение состоит в том, чтобы снова загрузить tar.gz в той же версии или основной. 

Если вы продолжаете читать ... вот как я решил проблему ... После новой установки Hadoop не смог найти банки. Я сделал этот маленький трюк:

Я расположен там, где банки
Я сделал символическую ссылку на папку $ HADOOP_HOME/доля/Hadoop/общие

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

для команды version вам нужен hadoop-common-2.7.2.jar, это помогло мне найти место хранения jar-файлов.

После этого...

$ 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

Конечно, любая команда hadoop/hdfs работает сейчас. 

Я снова счастливый человек, я знаю, что это не вежливое решение, но работает, по крайней мере, для меня.

1
ozw1z5rd

Попробуйте проверить:

  • Java_HOME, все переменные, связанные с PATH, в конфигурации Hadoop
  • выполните: . ~/.bashrc (обратите внимание на точку перед), чтобы сделать эти переменные доступными в вашей среде. Кажется, что руководство не упоминает об этом.
1
yǝsʞǝlA

Я получил эту ошибку и исправил ее, отредактировав ~/.bashrc

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

затем откройте терминал и напишите эту команду

source ~/.bashrc

затем проверьте 

hadoop version
0
Elsayed

Я использовал

export PATH=$HADOOP_HOME/bin:$PATH

Вместо 

export PATH=$PATH:$HADOOP_HOME/bin

Тогда это сработало для меня!

0
Giri

Я добавил переменные среды, описанные выше, но все еще не работал. Установка HADOOP_CLASSPATH в моем ~/.bashrc работает следующим образом:

export HADOOP_CLASSPATH=$(hadoop classpath):$HADOOP_CLASSPATH

0
Eduardo Sanchez-Ros