2016-05-14 11 views
1

unser Entwicklung HDP-Cluster hatte einen Stromausfall, der einige HDFS-System-Blöcke von Accumulo beschädigt, jetzt ist der Cluster in Safemode und ambari wird nicht neu gestartet.Rebuild Accumulo nach dem Absturz von nomenode crash korrumpiert Root-Block

Als eine DEV-Box hat HDFS einen Replikationsfaktor von 1, so dass ich die beschädigten Blöcke nicht wiederherstellen kann.

Was ist der beste Weg, Accumulo sauber wiederherzustellen, um das HDFS-Dateisystem wiederherzustellen und den HDP-Cluster wieder hochzufahren? Es sind keine Benutzerdaten in accumulo zum Speichern vorhanden, sodass in diesem Fall eine Bereinigung und Neuinitialisierung in Ordnung wäre. Ich bin mir nicht sicher, wie ich das am besten machen könnte.

Einige Korruption Details:

hdfs fsck/| egrep -v '^\.+$' | grep -v replica | grep -v Replica| grep "^\/" | grep "CORRUPT" | sed 's/: CORRUPT.*//' | grep -v "^$"

Ausgabe lautet:

Connecting to namenode via http://xyz.fakedomain.com:50070/fsck?ugi=andrew&path=%2F 
/apps/accumulo/data/tables/!0/table_info/A000133q.rf 
/apps/accumulo/data/tables/+r/root_tablet/A000133t.rf 
/apps/accumulo/data/tables/1/default_tablet/F000133r.rf 
/user/accumulo/.Trash/Current/apps/accumulo/data/tables/+r/root_tablet/delete+A000133t.rf+F000133s.rf 

Cluster Details sind:

Hortonworks HDP-2.4.0.0-169 
Accumulo 1.7.0.2.4 
YARN  2.7.1.2.4 

Antwort

3

Zuerst die schlechten Blöcke mit finden:

hdfs fsck/| egrep -v '^\.+$' | grep -v eplica 

löschen Sie dann die Datei (en) im Block (en) in Frage und löschen mit:

hdfs dfs -rm -skipTrash /some/path/to/files 

Als HDFS Benutzer die folgende auszuführen:

hdfs dfsadmin -safemode leave 

hdfs dfs -rm -R -skipTrash hdfs://servername:8020/apps/accumulo 

hadoop fs -mkdir -p /apps/accumulo 
hadoop fs -chmod -R 700 /apps/accumulo 
hadoop fs -chown -R accumlo:accumulo /apps/accumulo 

Von Ambari Neustart Accumulo zu initialisieren oder auszuführen:

/usr/hdp/current/accumulo-client/bin/accumulo init 

und beginnen dann mit

/usr/hdp/current/accumulo-client/bin/start-all.sh 
+0

Der Cluster ist wieder einsatzbereit und läuft super. Vielen Dank! – Minkymorgan