当前位置:   article > 正文

hbase的表读写错误_is not online on 60020

is not online on 60020

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
  • 1

B.停止hbase服务

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

D.启动hbase服务

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

drop tablename
  • 1

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

hbase hbck -fixMeta
  • 1

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

H.再次执行F步骤

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

hbase hbck -fixAssignments
  • 1

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

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号