使用hadoop fs –du –h查看hdfs目录占用空间大小,发现实际大小和备份大小不成比例,副本为3,理论应该是3倍的关系,如下:
Fsck检查HDFS,发现副本缺失
发现部分副本缺失,强制将上述文件副本数设置为3;
hadoop fsck / | grep replicated | grepTarget |awk -F ":" '{print $1}' |xargs hadoop fs -setrep -R 3
1、停止Hbase集群
2、将/hbase目录备份
hadoop fs -mv/hbase /hbase.bak
3、重启Hbase集群
shstart-hbase.sh,报如下错误:
2017-03-09 15:32:32,662 INFO [hkweb26:14700.activeMasterManager]zookeeper.MetaTableLocator: Failed verification of hbase:meta,,1 ataddress=hkweb35,14720,1489044309615,exception=org.apache.hadoop.hbase.NotServingRegionException: Regionhbase:meta,,1 is not online on hkweb35,14720,1489044747737
atorg.apache.hadoop.hbase.regionserver.HRegionServer.getRegionByEncodedName(HRegionServer.java:2786)
atorg.apache.hadoop.hbase.regionserver.RSRpcServices.getRegion(RSRpcServices.java:922)
atorg.apache.hadoop.hbase.regionserver.RSRpcServices.getRegionInfo(RSRpcServices.java:1204)
at org.apache.hadoop.hbase.protobuf.generated.AdminProtos$AdminService$2.callBlockingMethod(AdminProtos.java:20862)
4、解决问题3,将Zk上的/hbase目录删除掉
zkCli.sh-server hkweb24:14601,hkweb25:14601,hkweb26:14601
rmr/hbase
5、重新启动Hbase,启动成功
sh start-hbase.sh
6、查看Hbase占用Hdfs空间大小
Hbase启动后,每个Regionserver、meta数据会分别占用一个block。
(上述结论需查找相关资料验证)