Nazwa węzła jest w trybie awaryjnym. Nie mogąc odejść

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.

Nie można tworzyć niczego w hdfs

Zrobiłem

root# bin/hadoop fs -safemode leave

Ale pokazuje

safemode: Unknown command
W czym problem?

Rozwiązanie

Author: Unmesha SreeVeni, 2013-04-04

9 answers

Aby na siłę pozwolić namenode opuścić safemode, należy wykonać następujące polecenie:

 bin/hadoop dfsadmin -safemode leave

Otrzymujesz błąd Unknown command dla Twojego polecenia, ponieważ -safemode nie jest podzbiorem hadoop fs, ale jest z hadoop dfsadmin.

Również po powyższym poleceniu, sugerowałbym, aby raz uruchomić hadoop fsck, aby wszelkie niezgodności wkradły się w hdfs mogły zostać rozwiązane.

Update:

Użyj polecenia hdfs zamiast polecenia hadoop dla nowszych dystrybucji. The hadoop polecenie jest przestarzałe:

hdfs dfsadmin -safemode leave

hadoop dfsadmin zostało wycofane, podobnie jak hadoop fs, wszystkie zadania związane z hdfs są przenoszone do osobnego polecenia hdfs.

 184
Author: Amar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-04 13:34:44

Spróbuj tego, to zadziała

sudo -u hdfs hdfs dfsadmin -safemode leave
 24
Author: Wesam Na,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-01-03 10:53:36

Polecenie nie zadziałało dla mnie, ale następujące

hdfs dfsadmin -safemode leave

Użyłem komendy hdfs zamiast komendy hadoop.

Zobacz też 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 too

 20
Author: Kishan B,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-02-23 12:04:46

Jeśli używasz Hadoop w wersji 2.6.1 powyżej, podczas gdy polecenie działa, skarży się, że jego amortyzacja. W rzeczywistości nie mogłem użyć hadoop dfsadmin -safemode leave, ponieważ uruchamiałem Hadoop w kontenerze Dockera i to polecenie magicznie zawodzi podczas uruchamiania w kontenerze, więc zrobiłem to. Sprawdziłem doc i znalazłem dfs.safemode.threshold.pct w dokumentacji, która mówi

Określa procent bloków, które powinny spełniać minimalne wymóg replikacji określony przez dfs.replikacja./ min. Wartości mniej niż lub równe 0 oznacza, że nie należy czekać na konkretny procent blokuje przed opuszczeniem safemode. Wartości większe niż 1 będą bezpieczne tryb Stały.

Więc zmieniłem hdfs-site.xml na następujące (w starszych wersjach Hadoop, widocznie trzeba to zrobić w hdfs-default.xml:

<configuration>
    <property>
        <name>dfs.safemode.threshold.pct</name>
        <value>0</value>
    </property>
</configuration>
 6
Author: ambodi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-11-19 09:46:21

Namenode wchodzi do safemode, gdy brakuje pamięci. W rezultacie HDFS staje się tylko czytelny. Oznacza to, że nie można utworzyć żadnego dodatkowego katalogu lub pliku w HDFS. Aby wyjść z safemode, używa się następującego polecenia:

hadoop dfsadmin -safemode leave
Jeśli używasz cloudera manager:
go to >>Actions>>Leave Safemode
Ale to nie zawsze rozwiązuje problem. Kompletne rozwiązanie polega na zrobieniu trochę miejsca w pamięci. Użyj następującego polecenia, aby sprawdzić swoją pamięć użycie.
free -m

Jeśli używasz cloudera, możesz również sprawdzić, czy HDFS wykazuje oznaki złego stanu zdrowia. To pewnie pokazuje jakiś problem z pamięcią związany z namenode. Przydziel więcej pamięci, postępując zgodnie z dostępnymi opcjami. Nie jestem pewien, jakich poleceń użyć do tego samego, jeśli nie używasz Cloudera manager, ale musi istnieć sposób. Mam nadzieję, że to pomoże! :)

 4
Author: Amitesh Ranjan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-09-24 06:15:37

Try this

sudo -u hdfs hdfs dfsadmin -safemode leave

Sprawdź status safemode

sudo -u hdfs hdfs dfsadmin -safemode get

Jeśli nadal jest w safemode, to jednym z powodów byłoby za mało miejsca w węźle, możesz sprawdzić użycie dysku węzła używając :

df -h

Jeśli partycja główna jest pełna, Usuń pliki lub Dodaj miejsce w partycji głównej i spróbuj ponownie pierwszy krok.

 3
Author: Tarun Reddy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-11-24 11:02:19

Uruchom poniższe polecenie, używając użytkownika systemu operacyjnego HDFS, aby wyłączyć tryb awaryjny:

sudo -u hdfs hadoop dfsadmin -safemode leave
 1
Author: Mayank Gupta,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-23 06:03:04

Użyj poniższego polecenia, aby wyłączyć tryb awaryjny

$ > hdfs dfsadmin-safemode leave

 0
Author: Azam Khan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-09-14 06:47:15

Tryb bezpieczny włączony (HDFS jest w trybie tylko do odczytu)
tryb awaryjny wyłączony oznacza (HDFS jest w trybie zapisu i odczytu)

W Hadoop 2.6.0 możemy sprawdzić status węzła nazw za pomocą poniższych poleceń:

Aby sprawdzić status węzła nazwy

$ hdfs dfsadmin -safemode get

ABY PRZEJŚĆ W TRYBIE AWARYJNYM:

$ hdfs dfsadmin -safemode enter

Aby opuścić tryb awaryjny

~$ hdfs dfsadmin -safemode leave
 0
Author: Vishwajeet Singh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-12 05:55:13