2016-05-14 66 views
1

我們的開發HDP羣集有一個停電損壞了Accumulo使用的一些HDFS系統塊,現在羣集處於安全模式,ambari不會重新啓動。在namenode崩潰後重建accumulo損壞根塊

作爲DEV盒,HDFS的複製因子爲1,因此我無法恢復損壞的塊。

什麼是最好的方式重建Accumulo乾淨地恢復HDFS文件系統,並使HDP羣集備份? accumulo中沒有用戶數據可以保存,所以在這種情況下擦除和重新初始化都可以。只是不確定最好的方式來做到這一點。

一些腐敗細節:

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

輸出爲:

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 

集羣細節:

Hortonworks HDP-2.4.0.0-169 
Accumulo 1.7.0.2.4 
YARN  2.7.1.2.4 

回答

3

首先找到的壞塊:

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

然後在所討論的(多個)方框中刪除該文件(一個或多個)中,用刪除:

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

作爲HDFS用戶運行以下:

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 

從Ambari重啓Accumulo到初始化或運行:

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

,然後用

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

集羣備份並運行良好。謝謝! – Minkymorgan