Форматирование Namenode и запуск Namenode в hadoop2.2.0

Вопрос или проблема

Я пытаюсь установить конфигурацию одного узла, я успешно выполнил несколько этапов, таких как загрузка и распаковка архива tar и редактирование всех файлов конфигурации, но столкнулся с проблемами при форматировании namenode.

Ошибки:

14/07/14 02:56:40 WARN fs.FileUtil: Не удалось удалить файл или каталог [/home/renu123/yarn/yarn_data/hdfs/namenode/current/seen_txid]: он все еще существует.
14/07/14 02:56:40 WARN fs.FileUtil: Не удалось удалить файл или каталог [/home/renu123/yarn/yarn_data/hdfs/namenode/current/VERSION]: он все еще существует.
14/07/14 02:56:40 WARN fs.FileUtil: Не удалось удалить файл или каталог [/home/renu123/yarn/yarn_data/hdfs/namenode/current/fsimage_0000000000000000000]: он все еще существует.
14/07/14 02:56:40 WARN fs.FileUtil: Не удалось удалить файл или каталог [/home/renu123/yarn/yarn_data/hdfs/namenode/current/fsimage_0000000000000000000.md5]: он все еще существует.
14/07/14 02:56:40 FATAL namenode.NameNode: Исключение в имени узла
java.io.IOException: Невозможно удалить текущий каталог: /home/renu123/yarn/yarn_data/hdfs/namenode/current
    at org.apache.hadoop.hdfs.server.common.Storage$StorageDirectory.clearDirectory(Storage.java:299)
    at org.apache.hadoop.hdfs.server.namenode.NNStorage.format(NNStorage.java:523)
    at org.apache.hadoop.hdfs.server.namenode.NNStorage.format(NNStorage.java:544)
    at org.apache.hadoop.hdfs.server.namenode.FSImage.format(FSImage.java:147)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.format(NameNode.java:837)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1213)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1320)
14/07/14 02:56:40 INFO util.ExitUtil: Завершается с кодом 1
14/07/14 02:56:40 INFO namenode.NameNode: SHUTDOWN_MSG: 
/************************************************************
SHUTDOWN_MSG: Завершение работы NameNode на ubuntu/127.0.1.1
************************************************************/

После поиска в Google я отформатировал namenode, перейдя в root аккаунт следующим образом:

root@ubuntu:~/yarn/yarn_data/hdfs/namenode# hdfs namenode -format
Переформатировать файловую систему в каталоге хранения /home/renu123/yarn/yarn_data/hdfs/namenode ? (Y или N) Y
14/07/14 02:59:30 INFO common.Storage: Каталог хранения /home/renu123/yarn/yarn_data/hdfs/namenode успешно отформатирован.
14/07/14 02:59:30 INFO namenode.FSImage: Сохранение файла изображения /home/renu123/yarn/yarn_data/hdfs/namenode/current/fsimage.ckpt_0000000000000000000 без сжатия
14/07/14 02:59:30 INFO namenode.FSImage: Файл изображения /home/renu123/yarn/yarn_data/hdfs/namenode/current/fsimage.ckpt_0000000000000000000 размером 196 байт сохранен за 0 секунд.
14/07/14 02:59:30 INFO namenode.NNStorageRetentionManager: Будет удержано 1 изображение с txid >= 0
14/07/14 02:59:30 INFO util.ExitUtil: Завершается с кодом 0
14/07/14 02:59:30 INFO namenode.NameNode: SHUTDOWN_MSG:
/************************************************************
SHUTDOWN_MSG: Завершение работы NameNode на ubuntu/127.0.1.1
************************************************************/

Даже после форматирования я все еще вижу каталоги в папке hdfs/namenode, т.е. current

Предполагая, что namenode отформатирован, я продолжил и попытался запустить namenode с помощью команды start-dfs.sh, но это не удалось.

Вот журнал из usr/local/hadoop/logs:

2014-07-14 02:49:10,478 WARN org.apache.hadoop.hdfs.server.common.Storage: Не удается получить доступ к каталогу хранения /home/renu123/yarn/yarn_data/hdfs/namenode
2014-07-14 02:49:10,484 INFO org.mortbay.log: Остановлен [email protected]:50070
2014-07-14 02:49:10,585 INFO org.apache.hadoop.metrics2.impl.MetricsSystemImpl: Остановка систем метрик NameNode...
2014-07-14 02:49:10,585 INFO org.apache.hadoop.metrics2.impl.MetricsSystemImpl: Система метрик NameNode остановлена.
2014-07-14 02:49:10,586 INFO org.apache.hadoop.metrics2.impl.MetricsSystemImpl: Завершение работы системы метрик NameNode.
2014-07-14 02:49:10,587 FATAL org.apache.hadoop.hdfs.server.namenode.NameNode: Исключение в имени узла
org.apache.hadoop.hdfs.server.common.InconsistentFSStateException: Каталог /home/renu123/yarn/yarn_data/hdfs/namenode находится в несогласованном состоянии: каталог хранения не существует или недоступен.
    at org.apache.hadoop.hdfs.server.namenode.FSImage.recoverStorageDirs(FSImage.java:292)
    at org.apache.hadoop.hdfs.server.namenode.FSImage.recoverTransitionRead(FSImage.java:200)
    at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.loadFSImage(FSNamesystem.java:787)
    at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.loadFromDisk(FSNamesystem.java:568)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.loadNamesystem(NameNode.java:443)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:491)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:684)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:669)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1254)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1320)
2014-07-14 02:49:10,590 INFO org.apache.hadoop.util.ExitUtil: Завершается с кодом 1
2014-07-14 02:49:10,602 INFO org.apache.hadoop.hdfs.server.namenode.NameNode: SHUTDOWN_MSG: 

Помогите мне найти решение этой проблемы.

Мои файлы конфигурации

core-site.xml

<configuration>
<property>
   <name>fs.default.name</name>

   <value>hdfs://localhost:9000</value>
</property>
</configuration>

yarn-site.xml

<configuration>
<!-- Конфигурационные свойства YARN для конкретного сайта -->
<property>
   <name>yarn.nodemanager.aux-services</name>

   <value>mapreduce_shuffle</value>
</property>
<property>
   <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>

   <value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
</configuration>

mapred-site.xml

<configuration>
<property>
   <name>mapreduce.framework.name</name>

   <value>yarn</value>
</property>
</configuration>

hdfs-site.xml

<configuration>
<property>
   <name>dfs.replication</name>

   <value>1</value>
 </property>
 <property>
   <name>dfs.namenode.name.dir</name>

   <value>file:/home/renu123/yarn/yarn_data/hdfs/namenode</value>
 </property>
 <property>
   <name>dfs.datanode.data.dir</name>

   <value>file:/home/renu123/yarn/yarn_data/hdfs/datanode</value>
 </property>
</configuration>

Если вы следовали инструкциям по установке, данным по ссылке (@Vikas Hardia – Ссылка работает, просто проигнорируйте добавленный ‘ в конце – Возможно, опечатка 🙂 – https://www.digitalocean.com/community/tutorials/how-to-install-hadoop-on-ubuntu-13-10)

То ниже изложенное может сработать для вас.

Решение

sudo chown -R hduser:hadoop /usr/local/hadoop
sudo chown -R hduser:hadoop /usr/local/hadoop_store

Это сработало для меня, если возникнут какие-либо проблемы, просто убедитесь, что вы правильно изменили файл .bashrc для вашего пользователя hadoop.

возможно, есть проблема из-за ключевого слова file, которое вы использовали в

<configuration>
<property>
   <name>dfs.replication</name>

   <value>1</value>
 </property>
 <property>
   <name>dfs.namenode.name.dir</name>

   **<value>file:/home/renu123/yarn/yarn_data/hdfs/namenode</value>**
 </property>
 <property>
   <name>dfs.datanode.data.dir</name>

   **<value>file:/home/renu123/yarn/yarn_data/hdfs/datanode</value>**
 </property>
</configuration>

вам может понадобиться удалить это “file:” и указать как ниже

/home/renu123/yarn/yarn_data/hdfs/namenode

и

/home/renu123/yarn/yarn_data/hdfs/datanode

@Renukeshwar, у меня была такая же проблема.
Если вы посмотрите на эти строки в своих журналах ошибок,

java.io.IOException:Cannot remove directory:/home/renu123/yarn/yarn_data/hdfs/namenode/current
java.io.IOException: Cannot create directory: /home/renu123/yarn/yarn_data/hdfs/namenode/current

Это происходит, когда текущий пользователь не имеет доступа на чтение и запись в этот каталог.

Решение

После изменения всех конфигураций во всех файлах .xml введите это в терминале.
Это даст пользователю hduser из группы hadoop доступ к каталогу.

sudo chown -R hduser:hadoop /usr/local/hadoop

Примечание:
Чтобы проверить, к какой группе принадлежит пользователь, введите groups ваше-имя-пользователя

Редактировать: возможно, вам потребуется удалить временные каталоги.

sudo rm -R /путь-до-вашего-общего-хранилища

Отформатируйте namenode с помощью

hadoop namenode -format

Дальнейшее чтение: https://wiki.apache.org/hadoop/GettingStartedWithHadoop#Formatting_the_Namenode

Ответ или решение

Форматирование и запуск NameNode в Hadoop 2.2.0 — сложная задача, особенно в условиях одновузловой конфигурации. Поскольку вы уже провели начальную настройку, столкнулись с ошибками при форматировании NameNode, я постараюсь развернуто пояснить наиболее вероятные причины возникновения проблемы и предложить решения.

Анализ проблемы

Ваши ошибки указывают на проблемы с разрешениями доступа к директориям, что препятствует корректному форматированию NameNode:

  1. Ошибки доступа к файлам: Логи сообщают, что директории и файлы, такие как seen_txid, VERSION, fsimage_0000000000000000000, остаются неудаленными. Это часто происходит из-за отсутствия у текущего пользователя необходимых прав на удаление и модификацию файлов.

  2. Исключение InconsistentFSStateException: Указывает на несоответствия в состоянии файловой системы, когда директория либо отсутствует, либо недоступна.

Решение проблем

  1. Проверка и исправление прав доступа:

    • Вам необходимо предоставить соответствующие права на директории. Убедитесь, что директории, указанные в вашем файле hdfs-site.xml, доступны пользователю, под которым вы запускаете Hadoop.
    • Команда для изменения прав:
      sudo chown -R renu123:hadoop /home/renu123/yarn/yarn_data/hdfs/namenode
      sudo chown -R renu123:hadoop /home/renu123/yarn/yarn_data/hdfs/datanode
  2. Удаление временных и старых данных:

    • Удалите старые временные данные для обеспечения чистого состояния для форматирования:
      sudo rm -rf /home/renu123/yarn/yarn_data/hdfs/namenode/current
      sudo rm -rf /home/renu123/yarn/yarn_data/hdfs/datanode/*
  3. Корректировка конфигураций:

    • В файле hdfs-site.xml убедитесь, что пути не содержат префикса file::
      <value>/home/renu123/yarn/yarn_data/hdfs/namenode</value>
      <value>/home/renu123/yarn/yarn_data/hdfs/datanode</value>
  4. Форматирование NameNode:

    • После выполнения вышеперечисленных действий, снова попробуйте форматировать NameNode:
      hdfs namenode -format
  5. Запуск NameNode:

    • После успешного форматирования запустите NameNode с помощью:
      start-dfs.sh

Дополнительные рекомендации

  • Проверьте вашу .bashrc конфигурацию: Убедитесь, что переменные окружения для Hadoop настроены правильно.
  • Исследуйте логи: Логи в /usr/local/hadoop/logs содержат детальную информацию о дальнейших ошибках и могут помочь в их устранении.
  • Безопасный режим: Убедитесь, что ваш файервол или настройки безопасности не блокируют необходимые процессы Hadoop.

Следуя этим рекомендациям, вы сможете решить проблемы с форматированием и запуском NameNode в Hadoop 2.2.0. Регулярно проверяйте настройки и права доступа, чтобы избежать подобных проблем в будущем.

Оцените материал
Добавить комментарий

Капча загружается...