apache Hbase2.x disbale 表卡住

櫰木2年前技术文章710

1、现象

通过hbase shell disble 表,显示表已经被disable了,但是在drop table 时,又显示出现表被disable

1.png

2、分析

通过命令查看表的状态

is_disabled 'Employee'

2.png

通过原数据查看表的状态

get "hbase:meta","Employee","table:state"

3.png

一般正常情况下可以发现value为\x08\x03,正常的值是\x08\x00(Enabled)或者\x08\x01(Disabled)

https://donsnotes.com/tech/charsets/ascii.html

3、解决方法

方式1:修改表元数据
通过修改hbase meta表里面对应表的状态,这种方式目前试了一下,貌似对我这边没什么用。具体的思路如下:

  1. 修改hbase:meta 把表对应的状态置为开启或者关闭状态

hbase> put "hbase:meta","Employee","table:state",value="\b\01"
  1. 查看是否被修改

hbase> get "hbase:meta","Employee","table:state"
  1. 查看表状态

hbase> is_disabled 'Employee'
false
hbase> is_enabled 'Employee'
true
  1. 尝试drop table
    不能正常删除,还是显示表的状态为disableing

  2. 参考文档 :https://community.cloudera.com/t5/Support-Questions/Hbase-table-is-stuck-in-quot-Disabling-quot-state-Neither/m-p/235112

drop 'Employee'

方式2:通过hbase2.x 修复工具

  1. 设置表状态

./bin/hbase --config /opt/hbase/conf/ hbck -j hbase-operator-tools-1.2.0/hbase-hbck2/hbase-hbck2-1.2.0.jar setTableState  Employee DISABLED

表状态分为:enable,disable。enabling,disabling

4.png

不过在开始操作之前,最好看一下该表所有region对应的状态,否则,就算设置为DISABLE状态,在删除的时候依然不能正常删除。
2)查看当前表所有的region状态

./bin/hbase shell <<< "scan 'hbase:meta', {FILTER=>\"PrefixFilter('Employee')\"}" |grep "info:state"

5大.jpeg

  1. 如果表region状态跟你预想的不一样,可以通过HBCK2 设置region的状态

HBCK2使用

4) 删除表

6.png


相关文章

MySQL 小版本升级

MySQL 小版本升级

MySQL 版本一般不需要经常升级,如果需要使用某个新特性或者修改 BUG 就不得不升级小版本。1. 环境调研当前数据库版本和需要升级到某个版本,如果升级需求 5.6.22+ 那么我们直接下载 5.6...

oracle安装gi执行root.sh报错:PRCR-1079 : Failed to start resource ora.cvu

1、具体报错如下:安装gi执行root.sh报错:PRCC-1014 : LISTENER_SCAN1 was already runningPRCR-1004 : Resource ora.LIST...

ACOS无数据告警实践

ACOS无数据告警实践

1.说明在实现数据监控的过程中告警能力无疑是重中之重,无数据告警亦是告警能力中重要的场景,这里我们聊聊关于无数据一些场景和实践方法。2.无数据可能场景对于运维监控平台来说无数据是一个比较复杂的情况,从...

Alluxio部署

安装前准备1.1. 添加环境变量vi /etc/profile export ALLUXIO_HOME=/opt/alluxioexport PATH=$PATH:$ALLUXIO_HOME/bin ...

.gitlab-ci.yml 语法

.gitlab-ci.yml 语法

介绍管道配置从作业(job)开始, 作业是 .gitlab-ci.yml 文件的最基本元素。job是:定义了约束,指出应在什么条件下执行具有任意名称的顶级元素,并且必须至少包含 script 子句不限...

Prometheus集成pushgateway监控k8s集群

Prometheus集成pushgateway监控k8s集群

Prometheus部署环境介绍本文的k8s环境是通过二进制方式搭建的v1.20.13版本清单准备注意集群版本的坑,自己先到Github上下载对应的版本。注意: 集群版本在v1.21.x之前需要注意下...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。