Имя узла находится в безопасном режиме. Не в состоянии уйти
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
в чем проблема?
9 ответов:
чтобы принудительно позволить namenode покинуть safemode, должна быть выполнена следующая команда:
bin/hadoop dfsadmin -safemode leaveвы получаете
Unknown commandошибка для вашей команды как-safemodeне является суб-командой дляhadoop fs, но этоhadoop dfsadmin.также после приведенной выше команды, я бы предложил вам один раз запустить
hadoop fsckтак что любые несоответствия ползли в hdfs могут быть отсортированы.обновление:
использовать вместо
hadoopкоманда для новых дистрибутивов. Элемент является устаревшим:hdfs dfsadmin -safemode leave
hadoop dfsadminбыл осужден и такhadoop fsкоманда, все связанные с hdfs задачи перемещаются в отдельную командуhdfs.
команда не работала для меня, но следующие сделали
hdfs dfsadmin -safemode leaveя использовал вместо .
проверить http://ask.gopivotal.com/hc/en-us/articles/200933026-HDFS-goes-into-readonly-mode-and-errors-out-with-Name-node-is-in-safe-mode- ссылка тоже
если вы используете Hadoop версии 2.6.1 выше, в то время как команда работает, он жалуется, что его амортизация. Я на самом деле не мог использовать
hadoop dfsadmin -safemode leaveпотому что я запускал Hadoop в контейнере Docker, и эта команда волшебным образом терпит неудачу при запуске в контейнере, так что я сделал это. Я проверил doc и нашелdfs.safemode.threshold.pctв документации, что говоритуказывает процент блоков, которые должны удовлетворять минимальным требование репликации, определенное dfs.копирование.минута. Значения меньше чем или равно 0 означает не ждать какого-либо конкретного процента блоки перед выходом из safemode. Значения больше 1 сделают безопасным режим постоянный.
поэтому я изменил
hdfs-site.xmlв следующее (в более старых версиях Hadoop, по-видимому, вам нужно сделать это вhdfs-default.xml:<configuration> <property> <name>dfs.safemode.threshold.pct</name> <value>0</value> </property> </configuration>
Namenode входит в safemode, когда есть нехватка памяти. В результате HDFS становится только читаемым. Это означает, что нельзя создать какой-либо дополнительный каталог или файл в HDFS. Для выхода из режима safemode используется следующая команда:
hadoop dfsadmin -safemode leaveЕсли вы используете Cloudera manager:
go to >>Actions>>Leave Safemodeно это не всегда решит проблему. Полное решение заключается в создании некоторого пространства в памяти. Используйте следующую команду для проверки памяти использование.
free -mЕсли вы используете cloudera, вы также можете проверить, если HDFS показывает некоторые признаки плохого здоровья. Вероятно, он должен показывать некоторые проблемы с памятью, связанные с namenode. Выделите больше памяти, следуя доступным параметрам. Я не уверен, какие команды использовать для того же, если вы не используете Cloudera manager, но должен быть способ. Надеюсь, это поможет! :)
попробуй такое
sudo -u hdfs hdfs dfsadmin -safemode leaveпроверьте состояние safemode
sudo -u hdfs hdfs dfsadmin -safemode getесли он все еще находится в safemode, то одной из причин будет недостаточно места в вашем узле, вы можете проверить использование диска узла с помощью:
df -hесли корневой раздел заполнен, удалите файлы или добавьте место в корневом разделе и повторите первый шаг.
выполните команду ниже с помощью пользователя HDFS OS, чтобы отключить безопасный режим:
sudo -u hdfs hadoop dfsadmin -safemode leave
безопасный режим по средствам (HDFS находится в режиме только для чтения)
безопасный режим off означает (HDFS находится в режиме записи и чтения)на
Hadoop 2.6.0, мы можем проверить состояние узла name с помощью следующих команд:чтобы проверить состояние узла имени
$ hdfs dfsadmin -safemode getДЛЯ ВХОДА В БЕЗОПАСНЫЙ РЕЖИМ:
$ hdfs dfsadmin -safemode enterвыйти из безопасного режима
~$ hdfs dfsadmin -safemode leave
Comments