Имя узла находится в безопасном режиме. Не в состоянии уйти



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


в чем проблема?



решение

1028   9  

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.

попробуйте этот, он будет работать

sudo -u hdfs hdfs dfsadmin -safemode leave

команда не работала для меня, но следующие сделали

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 dfsadmin-safemode leave

безопасный режим по средствам (HDFS находится в режиме только для чтения)
безопасный режим off означает (HDFS находится в режиме записи и чтения)

на Hadoop 2.6.0, мы можем проверить состояние узла name с помощью следующих команд:

чтобы проверить состояние узла имени

$ hdfs dfsadmin -safemode get

ДЛЯ ВХОДА В БЕЗОПАСНЫЙ РЕЖИМ:

$ hdfs dfsadmin -safemode enter

выйти из безопасного режима

~$ hdfs dfsadmin -safemode leave

Comments

    Ничего не найдено.