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 jest w stanie nic stworzyć w hdfs
Zrobiłem
root# bin/hadoop fs -safemode leave
Ale pokazuję
safemode: Unknown command
Jaki jest problem?
Odpowiedzi:
Aby na siłę pozwolić namenode opuścić tryb bezpieczny, należy wykonać następujące polecenie:
Otrzymujesz
Unknown command
błąd dla twojego polecenia, ponieważ-safemode
nie jest to polecenie podrzędne dlahadoop fs
, ale jest zhadoop dfsadmin
.Również po powyższym poleceniu sugerowałbym, abyś raz uruchomił
hadoop fsck
, aby wszelkie niespójności wkradły się w hdfs.Aktualizacja:
Użyj
hdfs
polecenia zamiasthadoop
polecenia dla nowszych dystrybucji.hadoop
Komenda jest nieaktualne:hadoop dfsadmin
została przestarzała, podobnie jakhadoop fs
polecenie, wszystkie zadania związane z hdfs są przenoszone do osobnej komendyhdfs
.źródło
hadoop dfsadmin
polecenie, dało mi to:______ DEPRECATED: Use of this script to execute hdfs command is deprecated. Instead use the hdfs command for it. Safe mode is OFF
______ ... ale nadal działało. Wydaje się, że sugestia @ user3316017 poniżej to zalecana składnia.hdfs dfsadmin -safemode leave
komenda zostanie uruchomiona, ponieważ klaster jest pełny, czasami można wyjść z sytuacji, natychmiast łącząc whdfs dfsadmin -safemode leave; hdfs dfs -rm -skipTrash /path/to/stuff/to/delete
spróbuj tego, to zadziała
źródło
Dowództwo nie działało dla mnie, ale działały następujące
Użyłem
hdfs
polecenia zamiasthadoop
polecenia.Sprawdź 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 też
źródło
Jeśli używasz Hadoop w wersji 2.6.1 powyżej, gdy polecenie działa, narzeka, że zostało zdeprecjonowane. Właściwie nie mogłem użyć,
hadoop dfsadmin -safemode leave
ponieważ korzystałem z Hadoopa w kontenerze Dockera, a to polecenie magicznie zawodzi po uruchomieniu w kontenerze, więc zrobiłem to. Sprawdziłem dokumentację i znalazłemdfs.safemode.threshold.pct
w dokumentacji, która mówiwięc zmieniłem
hdfs-site.xml
na następujące (w starszych wersjach Hadoop najwyraźniej musisz to zrobić whdfs-default.xml
:źródło
Namenode wchodzi w tryb bezpieczny, gdy brakuje pamięci. W rezultacie HDFS staje się tylko do odczytu. Oznacza to, że nie można tworzyć żadnego dodatkowego katalogu ani pliku w HDFS. Aby wyjść z trybu bezpiecznego, używane jest następujące polecenie:
Jeśli używasz menedżera Cloudera:
Ale to nie zawsze rozwiązuje problem. Kompletne rozwiązanie polega na zrobieniu miejsca w pamięci. Użyj następującego polecenia, aby sprawdzić użycie pamięci.
Jeśli używasz Cloudera, możesz również sprawdzić, czy HDFS wykazuje oznaki złego stanu zdrowia. Prawdopodobnie musi pokazywać jakiś problem z pamięcią związany z kodem nazw. Przydziel więcej pamięci, korzystając z dostępnych opcji. Nie jestem pewien, jakich poleceń użyć do tego samego, jeśli nie używasz menedżera Cloudera, ale musi być sposób. Mam nadzieję, że to pomoże! :)
źródło
Spróbuj tego
sprawdź stan trybu bezpiecznego
Jeśli nadal jest w trybie bezpiecznym, jednym z powodów byłoby za mało miejsca w twoim węźle, możesz sprawdzić użycie dysku węzła za pomocą:
jeśli partycja główna jest pełna, usuń pliki lub dodaj miejsce na partycji głównej i ponów pierwszy krok.
źródło
tryb bezpieczny włączony oznacza (HDFS jest tylko do
odczytu) tryb bezpieczny wyłączony oznacza (HDFS jest w trybie z możliwością zapisu i odczytu)
W programie
Hadoop 2.6.0
możemy sprawdzić stan nazwy węzła za pomocą poniższych poleceń:SPRAWDZIĆ stan węzła nazwy
ABY WEJŚĆ W BEZPIECZNY TRYB:
Aby opuścić tryb bezpieczny
źródło
Uruchom poniższe polecenie, używając użytkownika systemu operacyjnego HDFS, aby wyłączyć tryb awaryjny:
źródło
użyj poniższego polecenia, aby wyłączyć tryb bezpieczny
$> hdfs dfsadmin -safemode zostaw
źródło