hbase遇到某个表删说不存在,建表说已存在

上一篇 / 下一篇  2012-10-11 16:45:59 / 个人分类:开发知识

遇到的现象如题,上图,
猜测是hbase对于这个表的存储某个地方数据不一致了。例如这个表名叫a
排查方法:
1.确定这个表是否存在,在hbase下list命令查看发现没有这个表信息,真是坑爹啊,没有还建不了。
2.到hbase在hdfs上的根目录查看是否存在这个表的数据,例如/hbase下面,数据会以与表名相同的目录进行存储,(/hbase/a)发现没有那个表的数据。
3.hbase对于ddl操作的信息是存在元数据中,这个和大部分数据库一样,那么去查看.META.表,看这个里面是否有和a表相关的元数据信息,果然有,有region位置的一些信息。
那么问题就比较明了了,真正存数据的位置没有,而.META.里面又有这个表的元数据,说在那个位置上呢,然后呢,找不到,就一直在分发这些region,又分发有问题,这个从zookeeper的/hbase/unassigned节点中也也可以清晰看到。
解决办法:
1.将.META.表的信息scan出来,获取到a表元数据的rowkey,将这些rowkey的记录删掉,可以写个循环脚本。

2.将zk下未分发的节点的region删掉。

删的时候一定要注意这两块对应的删别删错了哈,我的错误数据已经被我清掉了,没对应截图了,截图就是举个例子哈。

3.重启hbase解决。
ps:我发现我真是个“高产”的测试,能遇到各种各样问题。。。


TAG:

 

评分:0

我来说两句

Open Toolbar