hbase的表读写错误

Hbase集群问题案例

问题描述:

集群检查正常,hbase中某一张表或多张表,读与写都不行,hbase shell查询报错信息如下:
ERROR: org.apache.hadoop.hbase.NotServingRegionException: Region ebike_locus_1,304,1531291013653.4c4a5ca7069f9758d97b089785b61264. is not online on hadoop6,60020,1550477920553

初步原因判断:

集群宕机,zk与hbase通信故障,同事有程序往hbase写入数据,造成某些region分区与原信息表中的对应不上,导致表不可用

解决办法:

我的解决办法是:
A.先在hbase shell中失效表。执行命令:disable tablename

disable tablename

B.停止hbase服务

C.把hdfs上/hbase/data/default/(不一定是这个目录,具体集群具体分析)下的表移到别的地方

D.启动hbase服务

E.hbase shell中删除失效表,执行命令:drop tablename

drop tablename

F.修复.META.表。在hbase节点的root用户下执行:hbase hbck -fixMeta(注意此命令要有/hbase下的执行权限,查看报错信息,添加对应的目录权限后再次执行)

hbase hbck -fixMeta

G.把hdfs上移到别的地方的目录文件再次移动回/hbase/data/default/下

H.再次执行F步骤

I.Hbase shell中查看,如果依然失败,重新分区,执行命令:hbase hbck -fixAssignments。

hbase hbck -fixAssignments

注意:该方法会重新分区,对于大数据量的表会很慢,且是默认切分分区,线上运行表不推荐
推荐使用一下网址的方法
https://community.hortonworks.com/content/supportkb/182819/error-orgapachehadoophbasenotservingregionexceptio.html

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值