在namenode崩溃损坏根块后重建accumulo

xqkwcwgp  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(477)

我们开发的hdp集群停电,损坏了acumulo使用的一些hdfs系统块,现在集群处于安全模式,ambari不会重新启动。
作为一个dev box,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
nnsrf1az

nnsrf1az1#

首先用以下方法找出坏块:

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

相关问题