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
Другие вопросы по тегам