Вопрос или проблема
Я пытаюсь установить конфигурацию одного узла, я успешно выполнил несколько этапов, таких как загрузка и распаковка архива 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:
-
Ошибки доступа к файлам: Логи сообщают, что директории и файлы, такие как
seen_txid
,VERSION
,fsimage_0000000000000000000
, остаются неудаленными. Это часто происходит из-за отсутствия у текущего пользователя необходимых прав на удаление и модификацию файлов. -
Исключение InconsistentFSStateException: Указывает на несоответствия в состоянии файловой системы, когда директория либо отсутствует, либо недоступна.
Решение проблем
-
Проверка и исправление прав доступа:
- Вам необходимо предоставить соответствующие права на директории. Убедитесь, что директории, указанные в вашем файле
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
- Вам необходимо предоставить соответствующие права на директории. Убедитесь, что директории, указанные в вашем файле
-
Удаление временных и старых данных:
- Удалите старые временные данные для обеспечения чистого состояния для форматирования:
sudo rm -rf /home/renu123/yarn/yarn_data/hdfs/namenode/current sudo rm -rf /home/renu123/yarn/yarn_data/hdfs/datanode/*
- Удалите старые временные данные для обеспечения чистого состояния для форматирования:
-
Корректировка конфигураций:
- В файле
hdfs-site.xml
убедитесь, что пути не содержат префиксаfile:
:<value>/home/renu123/yarn/yarn_data/hdfs/namenode</value> <value>/home/renu123/yarn/yarn_data/hdfs/datanode</value>
- В файле
-
Форматирование NameNode:
- После выполнения вышеперечисленных действий, снова попробуйте форматировать NameNode:
hdfs namenode -format
- После выполнения вышеперечисленных действий, снова попробуйте форматировать NameNode:
-
Запуск NameNode:
- После успешного форматирования запустите NameNode с помощью:
start-dfs.sh
- После успешного форматирования запустите NameNode с помощью:
Дополнительные рекомендации
- Проверьте вашу
.bashrc
конфигурацию: Убедитесь, что переменные окружения для Hadoop настроены правильно. - Исследуйте логи: Логи в
/usr/local/hadoop/logs
содержат детальную информацию о дальнейших ошибках и могут помочь в их устранении. - Безопасный режим: Убедитесь, что ваш файервол или настройки безопасности не блокируют необходимые процессы Hadoop.
Следуя этим рекомендациям, вы сможете решить проблемы с форматированием и запуском NameNode в Hadoop 2.2.0. Регулярно проверяйте настройки и права доступа, чтобы избежать подобных проблем в будущем.