root# bin/hadoop fs -mkdir t
mkdir: org.apache.hadoop.hdfs.server.namenode.SafeModeException: Cannot create directory /user/root/t. Name node is in safe mode.
не может ничего создать в hdfs
я сделал
root# bin/hadoop fs -safemode leave
Но показывая
safemode: Unknown command
в чем проблема?
Ответы:
Для принудительного выхода namenode из безопасного режима необходимо выполнить следующую команду:
Вы получаете сообщение
Unknown command
об ошибке для своей команды, поскольку-safemode
это не подкоманда дляhadoop fs
, но она естьhadoop dfsadmin
.Также после указанной выше команды я бы посоветовал вам запустить ее один раз,
hadoop fsck
чтобы можно было устранить любые несоответствия в hdfs.Обновить:
Используйте
hdfs
команду вместоhadoop
команды для новых дистрибутивов.hadoop
Команда устарела:hadoop dfsadmin
устарел, как иhadoop fs
команда, все задачи, связанные с hdfs, переносятся в отдельную командуhdfs
.источник
hadoop dfsadmin
команду, она выдала мне следующее:______ DEPRECATED: Use of this script to execute hdfs command is deprecated. Instead use the hdfs command for it. Safe mode is OFF
______ ... но все равно запустилась. Похоже, предложение @ user3316017 ниже является рекомендуемым синтаксисом.hdfs dfsadmin -safemode leave
запускается, потому что кластер заполнен, иногда можно выйти из ситуации, немедленно связав команду для очистки материала, напримерhdfs dfsadmin -safemode leave; hdfs dfs -rm -skipTrash /path/to/stuff/to/delete
попробуйте это, это сработает
источник
Команда не сработала для меня, но следующее
Я использовал
hdfs
команду вместоhadoop
команды.Посетите http://ask.gopivotal.com/hc/en-us/articles/200933026-HDFS-goes-into-readonly-mode-and-errors-out-with-Name-node-is-in-safe- режим - ссылка тоже
источник
Если вы используете Hadoop версии 2.6.1 выше, пока команда работает, она жалуется, что она обесценилась. На самом деле я не мог использовать,
hadoop dfsadmin -safemode leave
потому что я запускал Hadoop в контейнере Docker, и эта команда волшебным образом не работает при запуске в контейнере, поэтому я сделал следующее. Я проверил документ и нашелdfs.safemode.threshold.pct
в документации, что говоритпоэтому я изменил это
hdfs-site.xml
на следующее (в старых версиях Hadoop, по-видимому, вам нужно сделать это вhdfs-default.xml
:источник
Namenode переходит в безопасный режим при нехватке памяти. В результате HDFS становится доступной только для чтения. Это означает, что в HDFS нельзя создать дополнительный каталог или файл. Для выхода из безопасного режима используется следующая команда:
Если вы используете менеджер cloudera:
Но это не всегда решает проблему. Полное решение состоит в том, чтобы освободить место в памяти. Используйте следующую команду, чтобы проверить использование памяти.
Если вы используете Cloudera, вы также можете проверить, не показывает ли HDFS какие-либо признаки плохого состояния. Вероятно, это показывает некоторую проблему с памятью, связанную с namenode. Выделите больше памяти, следуя доступным параметрам. Я не уверен, какие команды использовать для этого, если вы не используете диспетчер cloudera, но способ должен быть. Надеюсь, поможет! :)
источник
Попробуй это
проверить статус безопасного режима
Если он все еще находится в безопасном режиме, то одной из причин может быть недостаточно места на вашем узле, вы можете проверить использование диска вашего узла, используя:
если корневой раздел заполнен, удалите файлы или добавьте место в корневом разделе и повторите первый шаг.
источник
безопасный режим включен означает (HDFS находится в режиме только чтения)
безопасный режим отключен означает (HDFS находится в режиме записи и чтения)
В
Hadoop 2.6.0
, мы можем проверить статус узла имени с помощью следующих команд:ЧТОБЫ ПРОВЕРИТЬ статус узла имени
ЧТОБЫ ВОЙТИ В БЕЗОПАСНЫЙ РЕЖИМ:
ВЫЙТИ ИЗ БЕЗОПАСНОГО режима
источник
Выполните команду ниже, используя пользователя ОС HDFS, чтобы отключить безопасный режим:
источник
используйте команду ниже, чтобы отключить безопасный режим
$> hdfs dfsadmin -safemode leave
источник