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

时间:2024-03-01 18:22:39

现象:1、用hbase shell 创建表roomRecord 提示表已经存在 但是list查不到,用enable \'roomRecord\'/disable \'roomRecord\'/is_enabled \'roomRecord\'均没有问题

       2、java中通过HTableDescriptor创建表,报错如下图:

            

导致这种错误的操作:

     在删除一个表之前,disable的时候 不小心断开或其他因素 导致disable没有成功,然后就直接drop掉了这张表,虽然表被删除掉了,但是zookeeper依然存在该表的信息,故而造成上述错误org.apache.hadoop.hbase.TableNotEnabledException,list的时候也找不到。

解决办法:

           进入zookeeper安装文件夹bin下,

     运行./zkCli.sh,进入zookeeper客户端,登陆成功出现如下提示:

    

          运行 ls /  查看根目录下的文件夹,分别进入 table 和table92 文件夹,如果文件夹下边存在roomRecord,分别删除,然后重启hbase,问题得以解决。(注:重启过程中可能会出现master: java.net.BindException: Address already in use master:         at sun.nio.ch.Net.bind。。。。的错误,是因为zookeeper已经启动,可以先手动关闭zookeeper,然后再启动hbase)

          

        删除命令用:rmr  /hbase/table92/roomRecord

以下是别人的分析思路:放这里供参考

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上做了相应的检查