Case1 : hbase表无法查询,查看60010界面的active master,拉到最下面,可以看到出现RIT(Regions in Transition)异常,具体见截图
解决方案:
用dstools工具进行修复,直到inconsistencies(hbase hbck) 为0即视为正常,否则继续修复。
总结:
一般遇到类似这种hyperbase集群不可用、表无法正常查询、插入等异常,可以从以下方面进行初步排查
1. 检查hbase服务是否正常,可以从manager服务界面查看,也可以kubectl get pod | grep hyperbase1查看是否running
2. 若服务正常,可从以下两个方面进行进一步排查:
a. hbase shell里面能否正常对表进行scan、put等操作,若正常,则初步判断hbase本身没问题,可以考虑重启inceptor尝试解决。若不行报错再看具体报错callstack,继续往下排查。
b. 继续检查region服务是否异常,可以跑一下hbase hbck ,看下是否有inconsistencies,或60010界面看下是否有RIT情况,若有用dstools修复下,中间可以多修复几次,直至inconsistencies数量为'0'即可。
如果第二步b项中,dstools修复不成功,可以用hdfs fsck / 看下hdfs上是否存在坏块或block块丢失的问题,如果有,先解决坏块的问题,再继续使用dstools进行修复。
3. 若服务不正常,可以查看对应异常节点(hmaster或regionserver)的日志(位置:/var/log/hyperbase1),根据具体报错callstack通过aiops(hyperbase运维指南)、jira、baidu等渠道进行寻求解决方法
综上,服务正常且hbase hbck检查inconsistent结果为0,则判定hyperbase一切正常。