hbase创建表提示表已经存在而list显示无该表的处理

WARN org.apache.hadoop.hdfs.DFSClient: DataStreamer Exception: org.apache.hadoop.ipc.RemoteException: java.io.IOException: File /hbase/.tmp/t2/.tmp/.tableinfo.0000000001 could only be replicated to 0 nodes, instead of 1

hbase(main):023:0* list
无相应表

排错
1.在hadoop查看有无此表的数据
hadoop fs -ls /hbase
也无此表的信息,说明没有创建成功
hadoop fs -ls /hbase hadoop/.tmp
也不相应内容
2.重新进入shell开启debug,创建一个不存在的表,看一下业务流程
hbase shell -d
创建表,发现了如下信息
13/05/06 11:15:03 DEBUG client.MetaScanner: Scanning .META. starting at row=lzotdsdsdest,,00000000000000 for max=2147483647 rows using org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation@42db681c
这个发现说明建表先到‘.META.’表里去检查了有没有要创建的表,于是scan了一下,也没有我创建的表的信息。

13/05/06 11:15:03 DEBUG zookeeper.ClientCnxn: Reading reply sessionid:0x13e77d2facc0005, packet:: clientPath:null serverPath:null finished:false header:: 9,4  replyHeader:: 9,596335,0  request:: '/hbase/root-region-server,T  response:: #ffffffff000d3139383239406861646f6f70306861646f6f70302c36303032302c31333637383039393138343531,s{589701,589701,1367809925480,1367809925480,0,0,0,0,45,0,589701}
这个信息说明在zookeeper上做了相应的检查
./zkCli.sh
ls /hbase/root-region-server
没有什么发现

DEBUG zookeeper.ClientCnxn: Reading reply sessionid:0x13e77d2facc0005, packet:: clientPath:null serverPath:null finished:false header:: 10,4  replyHeader:: 10,596342,0  request:: '/hbase/table/lzotdsdsdest,F  response:: #ffffffff000d3139363538406861646f6f7030454e41424c4544,s{596332,596338,1367810103284,1367810103537,2,0,0,0,25,0,596332}
这个信息说明在zookeeper上做了相应的检查
./zkCli.sh
ls /hbase/table
发现问题在这里有t2这个表
同是看一下上一组目录
ls /hbase
发现了一个table92目录进去看了一下,里面也有t2这个表

解决
找到了有地方存在这个表名,第一个想到的是删掉这个t2,把两个目录的t2目录删除,重启了一下hbase,居然奇迹的可以了,问题就解决了。

猜你喜欢

转载自lg70124752.iteye.com/blog/1860525