NotServingRegionException错误

系统运行一段时间后:

刚开始重复报:

table=harve_visited_user, attempt=35/35 failed=1ops, last exception: org.apache.hadoop.hbase.NotServingRegionException: org.apache.hadoop.hbase.NotServingRegionException: Region harve_visited_user,7fceca2e-f5a1-4392-8f79-7ef3162f3421,1487091257232.fd14bb2aa7e374ff1338594a118652b0. is not online on z1,60040,1488419186595

后来报:

5095: Exception occured when updating object data.: Failed 1 action:

NotServingRegionException: 1 time, ;

 NotServingRegionException异常主要有两种原因:

1.region正在分裂时对数据的操作会抛此异常

2.region数据损坏时

如果使用shell命令操作hbase,获取harve_visited_user表记录数:

hbase_使用中遇到的问题(NotServingRegionException)_数据

运行到267000行后报错:

hbase_使用中遇到的问题(NotServingRegionException)_重启_02

ERROR: org.apache.hadoop.hbase.NotServingRegionException: Region harve_visited_user,

7fceca2e-f5a1-4392-8f79-7ef3162f3421,1487091257232.fd14bb2aa7e374ff1338594a118652b0. is not online on z1,60040,1488419186595

可以看见是rowkey为7fceca2e-f5a1-4392-8f79-7ef3162f3421的记录出了问题,很可能是今天公司运维在部线,导致机房突然断电,很可能此时正在操作7fceca2e-f5a1-4392-8f79-7ef3162f3421,导致记录不完整。

这里应该是原因2:
数据损坏导致当前数据存放的regin无法使用,使用hadoop fsck检查是否有损坏块

使用hadoop fsck / 或者hadoop fsck /hbase/data检查数据健康状况:

hbase_使用中遇到的问题(NotServingRegionException)_hadoop_03

可以看到,确实是harve_visited_user表丢了一块数据。

没有冗余备份,只能删除损坏的文件,使用命令: hadoop fsck -delete

刚开始玩hbase时胆子小,不敢使用上面的命令,加了一些路径,

hbase_使用中遇到的问题(NotServingRegionException)_重启_04

执行完后再检查:

hbase_使用中遇到的问题(NotServingRegionException)_数据_05

发现提示HEALTHY,健康。

重启hbase问题解决。

注:重启后如果还有问题,再检查看,同时参见PleaseHoldException异常的处理方案。
--------------------- 
作者:子龙修仙 
来源:CSDN 
原文:https://blog.csdn.net/qq_41665356/article/details/80271401 
版权声明:本文为博主原创文章,转载请附上博文链接!