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.
in hdfs nichts erstellen können
Ich tat
root# bin/hadoop fs -safemode leave
Aber zeigen
safemode: Unknown command
Was ist das Problem?
Antworten:
Um den Namensknoten zwangsweise den Sicherheitsmodus verlassen zu lassen, sollte der folgende Befehl ausgeführt werden:
Sie erhalten eine
Unknown command
Fehlermeldung für Ihren Befehl, da dies-safemode
kein Unterbefehl für isthadoop fs
, aber vonhadoop dfsadmin
.Auch nach dem obigen Befehl würde ich Ihnen empfehlen, einmal auszuführen,
hadoop fsck
damit etwaige Inkonsistenzen, die sich in den HDFS eingeschlichen haben, behoben werden können.Aktualisieren:
Verwenden Sie für neuere Distributionen den
hdfs
Befehl anstelle deshadoop
Befehls. Derhadoop
Befehl ist veraltet:hadoop dfsadmin
wurde veraltet, ebenso wie derhadoop fs
Befehl. Alle hdfs-bezogenen Aufgaben werden in einen separaten Befehl verschobenhdfs
.quelle
hadoop dfsadmin
Befehl ausführte , gab er mir______ DEPRECATED: Use of this script to execute hdfs command is deprecated. Instead use the hdfs command for it. Safe mode is OFF
Folgendes : ______ ... aber immer noch ausgeführt. Der folgende Vorschlag von @ user3316017 scheint die empfohlene Syntax zu sein.hdfs dfsadmin -safemode leave
Befehl ausgeführt wird, weil der Cluster voll ist, ist es manchmal möglich, aus der Situation herauszukommen, indem sofort ein Befehl zum Bereinigen vonhdfs dfsadmin -safemode leave; hdfs dfs -rm -skipTrash /path/to/stuff/to/delete
Versuchen Sie dies, es wird funktionieren
quelle
Das Kommando hat bei mir nicht funktioniert, aber das Folgende hat funktioniert
Ich habe den
hdfs
Befehl anstelle deshadoop
Befehls verwendet.Überprüfen Sie 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 auch
quelle
Wenn Sie Hadoop Version 2.6.1 oben verwenden, während der Befehl funktioniert, beschwert er sich darüber, dass er abgeschrieben ist. Ich konnte das eigentlich nicht verwenden,
hadoop dfsadmin -safemode leave
weil ich Hadoop in einem Docker-Container ausgeführt habe und dieser Befehl auf magische Weise fehlschlägt, wenn er im Container ausgeführt wird. Also habe ich dies getan. Ich habe dasdfs.safemode.threshold.pct
Dokument überprüft und in der Dokumentation gefunden, in der stehtDeshalb habe ich
hdfs-site.xml
Folgendes geändert: (In älteren Hadoop-Versionen müssen Sie dies anscheinend in tunhdfs-default.xml
:quelle
Namenode wechselt bei Speichermangel in den Sicherheitsmodus. Dadurch wird das HDFS nur noch lesbar. Das heißt, man kann kein zusätzliches Verzeichnis oder keine zusätzliche Datei im HDFS erstellen. Um den Sicherheitsmodus zu verlassen, wird der folgende Befehl verwendet:
Wenn Sie den Cloudera Manager verwenden:
Aber es löst das Problem nicht immer. Die vollständige Lösung besteht darin, Platz im Speicher zu schaffen. Verwenden Sie den folgenden Befehl, um die Speichernutzung zu überprüfen.
Wenn Sie Cloudera verwenden, können Sie auch überprüfen, ob das HDFS Anzeichen einer schlechten Gesundheit aufweist. Es muss wahrscheinlich ein Speicherproblem im Zusammenhang mit dem Namensknoten auftreten. Weisen Sie mehr Speicher zu, indem Sie die verfügbaren Optionen befolgen. Ich bin nicht sicher, welche Befehle für dasselbe verwendet werden sollen, wenn Sie den Cloudera Manager nicht verwenden, aber es muss einen Weg geben. Ich hoffe es hilft! :) :)
quelle
Versuche dies
Überprüfen Sie den Status des Sicherheitsmodus
Wenn es sich immer noch im Sicherheitsmodus befindet, ist einer der Gründe nicht genügend Speicherplatz in Ihrem Knoten. Sie können die Festplattennutzung Ihres Knotens überprüfen, indem Sie:
Wenn die Root-Partition voll ist, löschen Sie Dateien oder fügen Sie Speicherplatz in Ihrer Root-Partition hinzu und wiederholen Sie den ersten Schritt.
quelle
abgesicherter Modus ein bedeutet (HDFS befindet sich nur im READ-Modus)
abgesicherter Modus aus bedeutet (HDFS befindet sich im beschreibbaren und lesbaren Modus)
Im
Hadoop 2.6.0
können wir den Status des Namensknotens mithilfe der folgenden Befehle überprüfen:ÜBERPRÜFEN DES Namensknotenstatus
IN DEN SICHEREN MODUS EINGEBEN:
SICHEREN Modus VERLASSEN
quelle
Führen Sie den folgenden Befehl mit dem HDFS-Benutzer aus, um den abgesicherten Modus zu deaktivieren:
quelle
Verwenden Sie den folgenden Befehl, um den abgesicherten Modus auszuschalten
$> hdfs dfsadmin -safemode verlassen
quelle