赞
踩
集群检查正常,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
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。