apache Hbase2.x disbale 表卡住

櫰木7个月前技术文章221

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


相关文章

mysql8 rpm安装教程

1:卸载原有REPO源查询已经存在的mysql及相关依赖包rpm -qa | grep mysql此时你会看到一堆列表,使用 yum 命令依次卸载yum remove mysql-xxx-xxx-xx...

Flink关于HiveCatalog

HiveCatalogHiveCatalog 有两个用途:作为原生 Flink 元数据的持久化存储,以及作为读写现有 Hive 元数据的接口。配置在flink-sql-connector-hive-1...

ES运维(二)字段类型与内存管理

ES运维(二)字段类型与内存管理

一、ES常见字段类型1、 概述字段是数据存储的最小微粒,根据数据的性质不同将数据分成不同的字段类型,熟悉不同字段类型的特性,对索引的Mapping设计、查询调优都极其重要。2、 关键参数In...

Spark优化之配置参数

Spark优化之配置参数

一、资源参数优化所谓的Spark资源参数调优,其实主要就是对Spark运行过程中各 个使用资源的地方,通过调节各种参数,来优化资源使用的效率,从而提升Spark作业的执行性能。以下参数就是Spark中...

MySQL性能优化(六)优化or条件

MySQL性能优化(六)优化or条件

优化器是数据库中非常核心,又非常复杂的一个组件。有的SQL,优化器选择的执行计划并不是最优的,通过改写SQL,可以帮助优化器找到最优的执行计划。where条件中的or子句,是比较容易出问题的一个场景。...

MongoDB创建索引

一、后台创建索引默认情况下,当我们对一个比较热点的集合创建索引时,直到索引创建完毕,该集合都是无法读写的。1、后台创建索引语法db.collection.createIndex( { filed: 1...

发表评论    

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