Hadoop 2.7.2 - Ошибка: не удалось найти или загрузить основной класс org.apache.hadoop.hdfs.server.namenode.NameNode
Я новичок и пытаюсь найти решение этой проблемы. Я следил за этим турориалом, чтобы настроить Hadoop 2.7.2 на Ubuntu 15.10
http://idroot.net/tutorials/how-to-install-apache-hadoop-on-ubuntu-14-04/
Когда я запускаю "hdfs namenode format", я продолжаю получать эту ошибку Ошибка: не удалось найти или загрузить основной класс org.apache.hadoop.hdfs.server.namenode.NameNode
это контент bashrc
export JAVA_HOME=/usr/lib/jvm/java-8-oracle
export HADOOP_INSTALL=/usr/local/hadoop
export PATH=$PATH:$HADOOP_INSTALL/bin
export PATH=$PATH:$HADOOP_INSTALL/sbin
export HADOOP_MAPRED_HOME=$HADOOP_INSTALL
export HADOOP_COMMON_HOME=$HADOOP_INSTALL
export HADOOP_HDFS_HOME=$HADOOP_INSTALL
export YARN_HOME=$HADOOP_INSTALL
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_INSTALL/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_INSTALL/lib"
Может ли кто-нибудь помочь мне решить этот (я думаю, глупый) вопрос?
Большое спасибо Каме
3 ответа
У меня тоже есть эта ошибка. Для меня это просто потому, что некоторые файлы в папке /share/hadoop/yarn/ отсутствуют, что было вызвано неполной загрузкой hadoop.tar.gz, который все еще может быть удален из командной строки. Может помочь вам, ура.
Проблема решена с помощью скрипта пепла. Основным отличием является использование open jdk вместо oracle jre.
Спасибо за помощь!
Одной из причин этой проблемы может быть определенная пользователем HDFS_DIR
переменная окружения. Это подбирается скриптами, такими как следующие строки вlibexec/hadoop-functions.sh
:
HDFS_DIR=${HDFS_DIR:-"share/hadoop/hdfs"}
...
if [[ -z "${HADOOP_HDFS_HOME}" ]] &&
[[ -d "${HADOOP_HOME}/${HDFS_DIR}" ]]; then
export HADOOP_HDFS_HOME="${HADOOP_HOME}"
fi
Решение состоит в том, чтобы избежать определения переменной среды. HDFS_DIR
.
В моем случае, используя sudo
помогло, но по неправильным причинам: не было проблем с разрешениями, а с переменными среды.
Сначала убедитесь, что каталоги namenode и datanode уже существуют в расположении, указанном в hdfs-site.xml
файл. Вы можете использовать команду mkdir
создать те.
Затем попробуйте отформатировать наменоде, используя
hdfs namenode -format
или же
/usr/local/hadoop/bin/hdfs namenode -format
Пожалуйста, обратите внимание на дефис.
Моя конфигурация bashrc для hadoop:
#HADOOP VARIABLES START
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
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 HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"
export HADOOP_CLASSPATH=${JAVA_HOME}/lib/tools.jar
#HADOOP VARIABLES END