今天hbase的一台region server挂掉,重启后进行查询,发现有些纪录查询失败,报Region is not online的异常。
1
2
3
4
5
org.apache.hadoop.hbase.ipc.RemoteWithExtrasException(org.apache.hadoop.hbase.NotServingRegionException): org.apache.hadoop.hbase.NotServingRegionException: Region HJSTATE,9223370681872375807_199999,1459388712948.cfc561817b17589e451b2d585105580a. is not online on hbaseserver1,60020,1473686838114
at org.apache.hadoop.hbase.regionserver.HRegionServer.getRegionByEncodedName(HRegionServer.java:2920)
at org.apache.hadoop.hbase.regionserver.RSRpcServices.getRegion(RSRpcServices.java:1053)
at org.apache.hadoop.hbase.regionserver.RSRpcServices.scan(RSRpcServices.java:2385)
...
首先检查了HDFS是否存在数据丢失的情况,
1
hdfs fsck -list-corruptfileblocks
没有发现有坏块。
然后检查hbase集群状态,
1
hbase hbck
果然出现一些ERROR信息,进行修复,
1
hbase hbck -repair
HBase某些正常流程(Region split, Region assign等),会导致HBCK检查出集群状态为异常。要确定集群异常,最好连续执行HBCK,且每次异常都相同,才能确定集群出现异常。