HBase异常断电恢复后,某个表暴力删除后,新增该表显示已存在
暴力删除步骤
60010端口页面显示,该表处于RIT状态
这个时候drop会卡住。
1.删除HDFS上的数据
hadoop fs -mv /hbase/default/[table_name] /tmp
2.使用hbck进行修复
hbase hbck -fixMeta -fixAssignment
3.重启HBase
修复步骤
暴力删除后,新建该表,表名未变,显示该表已存在,shell里!list列表没有,zookooper里也找不到该文件。
百度到的均为:
进入zookeeper的服务,然后把表删掉再重启hbase
zkCli.sh
ls /hbase/table
rmr /hbase/table/[table_name]
ls /hbase/table-lock
rmr /hbase/table-lock/[table_name]
我在进入zookeeper的服务后,根本没有找到该表
这时,查看HBase的源数据
scan 'hbase:meta' , {LIMIT=>10,FILTER=>"PrefixFilter('[table_name]')"}
能看到有记录,
验证一下:
get 'hbase:meta' , '[table_name]'
对该记录进行删除操作(由于之前暴力删除是直接删除了/hbase/default/[table_name]文件),但是源数据表里还存在,所以对该行数据进行删除
deleteall 'hbase:meta' , '[table_name]'
之后新建成功。