简体   繁体   中英

HBase: The table test does not exist in meta but has a znode. run hbck to fix inconsistencies (which fails)

I recently added a table test while getting started on HBase.

I decided to reinstall HBase due to some issues.

After reinstalling and running the HBase shell I tried:

hbase(main):004:0> list
TABLE
0 row(s) in 0.0070 seconds

=> []

So there are no tables. Now I tried to add the table test

hbase(main):005:0> create 'test', 'testfamily'

ERROR: Table already exists: test!

I took a look into the log files and found the following entry

2018-06-21 07:53:30,646 WARN [ProcedureExecutor-2] procedure.CreateTableProcedure: The table test does not exist in meta but has a znode. run hbck to fix inconsistencies.

I ran it and got the following

$ hbase hbck test
Table hbase:meta is okay.
    Number of regions: 1
    Deployed on:  my_IP,16201,1529567081041 
0 inconsistencies detected.
Status: OK

I'm wondering if there's a way to remove the znode by hand?

I have also faced the same issue where it was showing the following error

The table does not exist in meta but has a znode. run hbck to fix inconsistencies.

The answer is obvious in the error only.

Inconsistency is caused as the table exist in your zookeeper quorum(distributed/pseudo distributed mode) or single zookeeper node(for standalone mode) but is not present in hbase .

So the solution will be to remove the table from zookeeper node.

To do so -

  1. Open zookeeper client. bin/zkCli.sh
  2. You can see all the tables which are picked by zookeeper by ls /hbase/table
  3. Try to find the table name mentioned in the error and run rmr /hbase/table/<table_name> .This will remove that table from the state of zookeeper.
  4. Try to create table again from Hbase.It will get created without any problem.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM