HBase: тест таблицы не существует в meta, но имеет znode. запустите hbck, чтобы исправить несоответствия (которые не работают)

Я недавно добавил таблицу test пока начинаю на HBase.

Я решил переустановить HBase из-за некоторых проблем.

После переустановки и запуска оболочки HBase я попытался:

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

=> []

Так что нет таблиц. Теперь я попытался добавить таблицу test

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

ERROR: Table already exists: test!

Я посмотрел в лог-файлы и нашел следующую запись

2018-06-21 07:53:30,646 WARN [ProcessExecutor-2] method.CreateTableProcedure: тест таблицы не существует в meta, но имеет znode. запустите hbck, чтобы исправить несоответствия.

Я запустил его и получил следующее

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

Мне интересно, есть ли способ удалить znode рукой?

0 ответов

Я также столкнулся с той же проблемой, где он показывал следующую ошибку

Таблица не существует в meta, но имеет znode. запустите hbck, чтобы исправить несоответствия.

Ответ очевиден только в ошибке.

Несогласованность возникает из-за того, что таблица существует в вашем кворуме zookeeper (распределенный / псевдораспределенный режим) или в одном узле zookeeper (для автономного режима), но отсутствует в hbase.

Поэтому решение будет состоять в том, чтобы удалить таблицу из узла zookeeper.

Для этого -

  1. Откройте клиент zookeeper. bin/zkCli.sh
  2. Вы можете увидеть все таблицы, которые выбирает zookeeper ls /hbase/table
  3. Попробуйте найти имя таблицы, указанное в ошибке, и запустите rmr /hbase/table/<table_name>Это уберет эту таблицу из состояния zookeeper.
  4. Попробуйте снова создать таблицу из Hbase. Она будет создана без проблем.
Другие вопросы по тегам