2012-12-05 5 views
12

Ich habe versucht, Dateien von meiner lokalen Festplatte auf hdfs zu kopieren. Zuerst gab es SafeModeException. Bei der Suche nach der Lösung habe ich gelesen, dass das Problem nicht auftritt, wenn man denselben Befehl erneut ausführt. Also versuchte ich es erneut und es gab keine Ausnahme.SafeModeException: Name Knoten ist im abgesicherten Modus

[email protected]:/usr/local/hadoop$ bin/hadoop dfs -copyFromLocal /tmp/gutenberg/ /user/hduser/gutenberg 
copyFromLocal: org.apache.hadoop.hdfs.server.namenode.SafeModeException: Cannot create directory /user/hduser/gutenberg. Name node is in safe mode. 
[email protected]:/usr/local/hadoop$ bin/hadoop dfs -copyFromLocal /tmp/gutenberg/ /user/hduser/gutenberg 

Warum passiert das ?. Soll ich Safemode mit diesem Code deaktivieren?

hadoop dfs -safemode leave 
+0

Was war der Zeitunterschied zwischen der Ausführung der Befehle? Es dauert einige Augenblicke, bis alle Datenknoten beim ersten Start der HDFS-Dienste online sind. –

+2

FYI, der Befehl zum Verlassen des Safemodus in meiner Version von hadoop ist: 'hadoop dfsadmin -safemode leave'. –

+0

@saket haben Sie eine Lösung für Ihr Problem gefunden? –

Antwort

17

NameNode ist in abgesicherten Modus bis konfiguriert Prozent der Blöcke von den Datenknoten online sein, berichtet. Er kann durch den Parameter dfs.namenode.safemode.threshold-pct im hdfs-site.xml

konfiguriert werden. Für kleine/Entwicklungscluster, wo Sie sehr wenige Blöcke haben, ist es sinnvoll, diesen Parameter niedriger als seinen Standardwert 0.9999f Wert. Andernfalls kann ein fehlender Block dazu führen, dass das System im Sicherheitsmodus hängt.

+1

Während Cluster im abgesicherten Modus können Sie aus HDFS lesen, aber Sie können nicht in HDFS schreiben. –

+0

Ja. Es ist schreibgeschützter Modus. –

12

Zum hadoop Weg in bin (in meinem System /usr/local/hadoop/bin/),

cd /usr/local/hadoop/bin/ 

prüfen eine Datei hadoop ist,

[email protected]:/usr/local/hadoop/bin$ ls 

die o/p sein wird,

hadoop   hadoop-daemons.sh start-all.sh  start-jobhistoryserver.sh stop-balancer.sh   stop-mapred.sh 
hadoop-config.sh rcc    start-balancer.sh start-mapred.sh   stop-dfs.sh    task-controller 
hadoop-daemon.sh slaves.sh   start-dfs.sh  stop-all.sh    stop-jobhistoryserver.sh 

Dann müssen Sie mit comman in den abgesicherten Modus d ./hadoop dfsadmin -safemode leave,

[email protected]:/usr/local/hadoop/bin$ ./hadoop dfsadmin -safemode leave 

Sie Antwort als,

Safe mode is OFF 

Hinweis bekommen: Ich habe Hadoop User mit dem Namen hadoopuser.

+0

Antwort ist super, danke eine Tonne @AJ –

Verwandte Themen