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

时间:2023-01-28 08:28:59

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)

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

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

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

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

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

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

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

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

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

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

执行完后再检查:

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

发现提示HEALTHY,健康。

重启hbase问题解决。

注:重启后如果还有问题,再检查看,同时参见PleaseHoldException异常的处理方案。