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