Не удалось найти или загрузить основной класс org.apache.hadoop.hdfs.server.namenode.Namenode
Я знаю, что это было задано раньше, но я не мог понять решение. Я получаю ошибку ниже, когда я пытаюсь запустить hdfs name node -format
:
Не удалось найти или загрузить основной класс org.apache.hadoop.hdfs.server.namenode.Namenode
Я выполнил инструкции с этого веб-сайта для установки на моем компьютере centos. Единственное различие заключается в том, что я установил с помощью root вместо hadoopuser, как указано в ссылке.
Bashrc
# User specific aliases and functions
export JAVA_HOME=/usr/lib/jvm/jre-1.7.0-openjdk.x86_64/
export HADOOP_INSTALL=/usr/local/hadoop
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 PATH=$PATH:$HADOOP_INSTALL/sbin
export PATH=$PATH:$HADOOP_INSTALL/bin
hadoop-env.sh
export JAVA_HOME=/usr/lib/jvm/jre-1.7.0-openjdk.x86_64/
Mapred
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
Пряжа-site.xml
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
ядро-site.xml
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
HDFS-site.xml
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.name.dir</name>
<value>file:///home/hadoopspace/hdfs/namenode</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>file:///home/hadoopspace/hdfs/datanode</value>
</property>
Ответы
Ответ 1
Для тех, у кого по-прежнему возникают проблемы, вам нужно экспортировать переменную среды HADOOP_PREFIX
.
Добавьте в свой файл ~/.bashrc
следующую строку:
export HADOOP_PREFIX=/path_to_hadoop_location
# for example:
# export HADOOP_PREFIX=/home/mike/hadoop-2.7.1
Затем сделайте . ~/.bashrc
в своем терминале и повторите попытку, это устранит ошибку.
Ответ 2
Спасибо dcsesq.
brew
установлен hasoop 2.6.0 на Mac OS 10.9.5 (maverick)
Добавьте следующие переменные env в .profile ~/.bash_profile
export HADOOP_HOME=/usr/local/Cellar/hadoop/2.6.0
export HADOOP_PREFIX=$HADOOP_HOME/libexec
export HADOOP_MAPRED_HOME=$HADOOP_PREFIX
export HADOOP_COMMON_HOME=$HADOOP_PREFIX
export HADOOP_HDFS_HOME=$HADOOP_PREFIX
export YARN_HOME=$HADOOP_PREFIX
Источник файла .profile
source ~/.bash_profile
Запустить namenode
hdfs namenode -format
Бум начался, беспокоил меня почти полдня.
Ответ 3
Попробуйте использовать следующую команду для форматирования (без пробела между именем и node и замените команду hdfs на hasoop)
hadoop namenode -format
Ответ 4
Похоже, что когда вы выполняете команду hadoop, не все классы (баночки) включены в ваш путь к классам.
В вашем пути к классу отсутствует файл hadoop-hdfs-<version>.jar
.
Ответ 5
Я попробовал предложения выше, но у меня все еще была такая же ошибка. Установка HADOOP_CLASSPATH
, как показано ниже в ~/.bashrc
, работала для меня:
export HADOOP_CLASSPATH=$(hadoop classpath):$HADOOP_CLASSPATH
Ответ 6
У меня тоже была эта ошибка. Для меня проблема заключалась в отсутствии файлов, которые не были извлечены во время первоначального процесса распаковки.
Что сработало для меня, я перейду в папку вашего файла .tar.gz и разархивирую его, используя:
tar xvzf <file_name>.tar.gz
Обратите внимание, что это отменяет все ваши сохраненные файлы, поэтому, если вы внесли изменения в любые файлы, лучше было бы создать копию вашей папки Hadoop до разархивирования.
Ответ 7
Я столкнулся с той же проблемой.
перезапустите терминал и попробуйте выполнить команду.
Требуется перезагрузка терминала, чтобы немедленно вносить изменения в переменную пути внутри файла .bashrc
Ответ 8
Добавить
export HADOOP_PREFIX =/путь/в/hadoop/установка/каталог
в конце файла etc/hadoop/hadoop-env.sh
в каталоге установки hadoop. Это позволяет jvm находить файлы классов.
Ответ 9
Убедитесь, что ваш путь hdfs
правильный, используя which
which hdfs
Ответ 10
Ошибка связана с отсутствием jar файлов hadoop hdfs в classpath hadoop. В терминале введите "hadoop classpath" и проверьте, присутствуют или нет файлы jar hdfs. Если нет, вставьте приведенную ниже строку в .bashrc, сохраните ее и отправьте ее.
export HADOOP_CLASSPATH=new-classpath:$HADOOP_CLASSPATH
Вы можете создать новый путь к классам, добавив местоположение к вашим jar файлам hdfs в конце существующего пути к классам и заменив раздел "new-classpath" своим собственным.
Ответ 11
Для Hadoop v3.1.2 на Windows 7 мне пришлось
-
Установите Cygwin (согласно инструкции).
-
Установите следующие переменные окружения, отметив, что это косые черты (/) вместо черных (\):
HADOOP_HOME=D:/.../hadoop-3.1.2
JAVA_HOME=D:/.../java-1.8.0-openjdk-1.8.0.201-2.b09.redhat.windows.x86_64
-
Снова откройте Cygwin и CD в моем каталоге hadoop - нужно открыть заново, чтобы подобрать новые переменные среды. Не стесняйтесь использовать ~/.bashrc и экспортировать HADOOP_HOME =... и т.д., чтобы сделать это тоже.
-
Убедитесь, что вы точно набрали следующее:
./bin/hdfs.cmd namenode -format
Это должен быть .cmd, иначе он не будет работать в Windows.
После этого все заработало отлично. Если у вас по-прежнему возникают проблемы, покопайтесь в файле hdfs.cmd и добавьте несколько эхо-вызовов, чтобы распечатать его, особенно рядом с вызовом Java, чтобы точно узнать, что он выполняет.
Ответ 12
проверьте и установите значение HADOOP_PREFIX
на $HADOOP