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
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
.
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
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
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>
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! :)
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.
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
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
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
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