2016-12-06 4 views
0

Ich sah in Hadoop Dokumentation 1 der Standardwert für hadoop.tmp.dir ist /tmp/hadoop-${user.name} aber wenn ich es auf diese Weise einstellen, wenn Maschine neu startet, verliere ich die Daten?Einstellung hadoop.tmp.dir in/tmp

Ich meine, vielleicht muss ich dies nicht in der realen /tmp setzen, aber ich muss es in /home/myuser/tmp/hadoop-${user.name} tun?

Vielen Dank im Voraus!

Hinzufügen von Informationen:

Ich stelle es in/tmp/Hadoop-hduser, aber der Computer wurde durch elektrischen Strom Probleme unterbrochen und heute habe ich diese Meldung: Call From java.net.UnknownHostException: hduser-machine: hduser-machine to localhost:54310 failed on connection exception: java.net.ConnectException: Connection refused; For more details see: http://wiki.apache.org/hadoop/ConnectionRefused und ich lief diesen Befehl hadoop namenode und ich habe das: ERROR namenode.NameNode: Failed to start namenode. org.apache.hadoop.hdfs.server.common.InconsistentFSStateException: Directory /tmp/hadoop-hduser/dfs/name is in an inconsistent state: storage directory does not exist or is not accessible. Und ich dachte, dass es aufgrund der/tmp-Konfiguration war ...

+1

Wenn die Maschine neu gestartet wird, verlieren Sie * temporäre * Daten, was für neugestartete Knoten nicht von Nutzen ist. – gudok

+0

Ich fügte Informationen in meinem Beitrag hinzu, um mehr die Situation zu erklären :) – majitux

Antwort

1

Standardmäßig ist Hadoop konfiguriert, um aus der Box zu laufen. Um dies zu erreichen, zeigen alle wichtigen (nicht temporären) Verzeichnisse innerhalb ${hadoop.tmp.dir}, was wiederum auf /tmp zeigt, die wiederum auf allen Linux-Systemen vorhanden ist.

Als solche müssen Sie auch andere wichtige Pfade ändern, s hdfs-default.xml:

dfs.namenode.name.dir 
dfs.datanode.data.dir 
dfs.namenode.checkpoint.dir 

Sie sind separate Optionen, weil in realen Umgebung kann es möglich sein, vorübergehend und nicht nur vorübergehend Daten über verschiedene verteilen physische Speichergeräte. Aber wenn Setup klein ist, dann technisch ja, können Sie ${hadoop.tmp.dir} in einige dauerhafte (non/tmp) Stelle zeigen und ignorieren, was ich oben schrieb.

+0

Danke, @gudok! Deine Antwort ist sehr klar! – majitux