Не удалось найти или загрузить основной класс 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)

Ответы

Ответ 1

Это проблема настройки переменных окружения. По-видимому, я не нашел тот, который может работать до СЕЙЧАС. Я старался 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

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

Ответ 2

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

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

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

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

Ответ 3

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

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

Ответ 4

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

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

Так просто:

  • $sudo open ~/.bash_profile затем добавьте указанную выше строку
  • $source ~/.bash_profile

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

Ответ 5

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

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

Ответ 6

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

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

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

source ~/.bashrc

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

hadoop version

Ответ 7

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

Мое первое предложение - снова загрузить tar.gz в ту же версию или майор.

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

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

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

для команды версии вам нужен hadoop-common-2.7.2.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 работает сейчас.

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

Ответ 8

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

export HADOOP_CLASSPATH=$(hadoop classpath):$HADOOP_CLASSPATH

Ответ 9

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

export PATH=$HADOOP_HOME/bin:$PATH

Вместо

export PATH=$PATH:$HADOOP_HOME/bin

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