HBCK2修复hbase2的常见场景

上一文章已经把HBCK2 怎么在小于hbase2.0.3版本的编译与用法介绍了,解决主要场景

查看hbase存在的问题

一、使用hbase hbck命令

hbase hbck命令是对hbase的元数据进行检查,看是否有不健康的region

问题1:Unable to read .tableinfo

使用 参数 generateMissingTableDescriptorFile
hbase org.apache.hbase.HBCK2 generateMissingTableDescriptorFile hbase:meta

问题2:region is not onlie 导致该表无法查询

hbase后台报错: xxx region is not onlie
hbase hbck检测错误:
ERROR: Region { meta => kylin_metadata,,1626761168323.1d8cb3ce4a074d6a706c9fee570129df., hdfs => hdfs://master:8020/apps/hbase/data/data/default/kylin_metadata/1d8cb3ce4a074d6a706c9fee570129df, deployed => , replicaId => 0 } not deployed on any region server.

解决方式:

  1. 看到Regionname是:1d8cb3ce4a074d6a706c9fee570129df
  2. 执行命令重新分配 Region
  3. hbase org.apache.hbase.HBCK2 -d -s assigns 1d8cb3ce4a074d6a706c9fee570129df
  4. 如果有多个Region,直接写代码使用正则表达式[a-zA-Z0-9]{32}获取所有错误信息里面的RegionName
    hbase org.apache.hbase.HBCK2 -d -s assigns RegionName1 RegionName2 RegionName3

问题3:hbase:namespace的regionoffline 导致master is initializing

解决方式:

  1. 查询 hbase:meta表 hbase:namespace的region scan 'hbase:meta'

2.找到regionname
3. hbase org.apache.hbase.HBCK2 -d -s assigns regionname
4.desc 任意一个表,看是否能查询

问题3 region is closing ,region被lock

  1. 先去hbase ui的

左边就是pid,看到wating状态的pid 需要执行bypass
2.执行
hbase org.apache.hbase.HBCK2 -d -s bypass -o -r 22887 22889 22888
对会返回true的标志的pid 所对应的 regionname 执行下面命令
3.hbase org.apache.hbase.HBCK2 -d -s unassigns regionname1,regionname2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值