2017-07-05 3 views
0

Ich benutze hanoop 0.20.2 (ja, es ist eine Legacy-App). Ich habe ein einfaches Master-Slave-Setup mit 2 Knoten. Ich kann das Cluster fein mit JPS Befehl Master starten:Datanode bleibt im Sterben

4513 TaskTracker 
4225 DataNode 
4116 NameNode 
4565 Jps 
4329 SecondaryNameNode 
4410 JobTracker 

Und JPS Befehl Slave:

2409 Jps 
2363 TaskTracker 
2287 DataNode 

Allerdings, wenn ich einen Befehl ausführen, die wie mit hdfs interagiert:

hadoop dfs -ls/

es dauert ein paar Minuten und dann stirbt eines der Daten. im Protokoll der Suche kann ich das sehen, die ein bekannter Fehler ist (the directory is already locked hadoop):

2017-07-05 16:12:59.986 INFO main org.apache.hadoop.hdfs.server.common.Storage - Cannot lock storage /srv/shared/hadoop/dfs/data. The directory is already locked. 
Cannot lock storage /srv/shared/hadoop/dfs/data. The directory is already locked. 

Ich habe alle Dämonen versucht zu stoppen und dfs/Daten und Formatierung der NameNode löschen. Nachdem ich das getan habe, kann ich den Cluster erneut mit allem starten, aber sobald ich mit hdfs interagiere oder einen MR-Job ausführe, stirbt ein Datenknoten.

Die genauen Schritte, die ich nehme, nach anderen Beiträgen sind: 1. Stoppen Sie alle Daemons 2. dfs/data-Ordern 3. Lauf hadoop NameNode -format 4. Starten Sie alle Daemons

Nicht sicher löschen was ich sonst noch versuchen kann.

+1

Ist '/ srv/shared' ein gemeinsam genutzter Netzwerkordner? Wird es von mehreren Datenknoten gemeinsam genutzt? –

+0

Hallo Remus, ja das ist ein freigegebener eingehängter Ordner. –

+1

Ich bin mir nicht sicher, warum würden Sie einen freigegebenen Ordner für HDFS-Speicher verwenden, aber stellen Sie sicher, ** jeder Datenknoten verwendet einen anderen Ordner auf dem freigegebenen Speicher ** –

Antwort

0

Wie Remus Rusanu richtig darauf hingewiesen, HDFS ist in einem freigegebenen bereitgestellten Ordner gespeichert und das ist das Problem. Die Angabe separater data.dirs löst das Problem.