Не удалось найти или загрузить основной класс 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
Тогда это сработало для меня!