最近项目使用了HBASE,在测试环境中,项目启动不起来,总是报 org.apache.hadoop.hbase.TableExistsException: PV
,在项目启动时会检查PV表是否存在( AdminInstance.tableExists(TableName.valueOf('PV')) ; ),不存在则创建表 ( AdminInstance.createTable(...) ),在创建表时抛出了异常。
首先进入HBASE shell,查看相关表:
hbase shell
hbase(main):005:0> list
TABLE
PV
hbase(main):005:0> drop 'PV'
ERROR: Table PV does not exist.
Here is some help for this command:
Drop the named table. Table must first be disabled:
hbase> drop 't1'
hbase> drop 'ns1:t1'
这是因为zookeeper有一些过时的垃圾数据未与HBASE同步造成的(具体为什么会没同步我也不知道),删除zk遗留数据就行了
zkClient.sh -server 127.0.0.1:2181 //首先连接zookeeper
[zk: 127.0.0.1:2181(CONNECTED) 1] ls /hbase/table
[zk: 127.0.0.1:2181(CONNECTED) 2] hbase:meta hbase:namespace PV //果然有一条数据
[zk: 127.0.0.1:2181(CONNECTED) 3] delete /hbase/table/PV //删除该表
[zk: 127.0.0.1:2181(CONNECTED) 4] get /hbase/table/PV
Node does not exist: /hbase/table/PV
问题解决