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

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 

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

Решение

Чтобы принудительно разрешить наменоводу покинуть safemode, должна выполняться следующая команда:

  bin/hadoop dfsadmin -safemode leave 

Вы получаете Unknown command ошибку для своей команды, поскольку -safemode не является вспомогательной командой для hadoop fs , но она имеет hadoop dfsadmin .

Кроме того, после указанной выше команды я предлагаю вам выполнить hadoop fsck чтобы любые несоответствия, выполненные в hdfs, могли быть отсортированы.

Обновить:

Используйте команду hdfs вместо команды hadoop для более новых распределений. Команда hadoop устаревает:

 hdfs dfsadmin -safemode leave 

hadoop dfsadmin устарел, а hadoop fs команда hadoop fs , все связанные с hdfs задачи перемещаются в отдельную команду hdfs .

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

 sudo -u hdfs hdfs dfsadmin -safemode leave 

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

 hdfs dfsadmin -safemode leave 

hdfs команды 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- mode- link тоже

Если вы используете Hadoop версии 2.6.1 выше, в то время как команда работает, она жалуется, что ее обесценили. На самом деле я не мог использовать hadoop dfsadmin -safemode leave потому что я запускал Hadoop в контейнере Docker, и эта команда магически терпит неудачу при запуске в контейнере, так что я сделал это. Я проверил doc и нашел dfs.safemode.threshold.pct в документации, которая гласит:

Определяет процент блоков, которые должны удовлетворять минимальному требованию репликации, заданному dfs.replication.min. Значения, меньшие или равные 0, означают, что вы не должны ждать какого-либо определенного процента блоков до выхода из безопасного режима. Значения, превышающие 1, сделают безопасный режим постоянным.

поэтому я изменил hdfs-site.xml на следующие (в более старых версиях Hadoop, по-видимому, вам нужно сделать это в hdfs-default.xml :

   dfs.safemode.threshold.pct 0   

Namenode входит в safemode, когда есть нехватка памяти. В результате HDFS становится доступным только для чтения. Это означает, что нельзя создать какой-либо дополнительный каталог или файл в HDFS. Чтобы выйти из безопасного режима, используется следующая команда:

 hadoop dfsadmin -safemode leave 

Если вы используете менеджер cloudera:

 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

  • объединить выходные файлы после фазы уменьшения
  • Почему Spark быстрее, чем Hadoop Map Reduce
  • Гарантирует ли заказ MongoDB $ in
  • Объединение двух коллекций в MongoDB
  • Размер разделения входов Hadoop и размер блока
  • Где hasoop mapreduce framework отправляет мои инструкции System.out.print ()? (стандартный вывод)
  • Лучший способ сделать один-ко-многим «JOIN» в CouchDB
  • Использование map / reduce для отображения свойств в коллекции
  • Найти все дубликаты документов в коллекции MongoDB по ключевому полю
  • Как записи процесса Hadoop разбиваются по границам блоков?
  • Поддержка gzip в Spark
  • Давайте будем гением компьютера.