HBase 因 org.apache.hadoop.hbase.NotServingRegionException 区域不在线而失败

HBase fails with org.apache.hadoop.hbase.NotServingRegionException region is not online

我有一个使用 async-hbase-client.

将数据保存到 HBase 的异步应用程序

我的HBase版本是:1.0.0-cdh5.6.0 我的异步 HBase 客户端版本是:0.9.0

应用程序 运行 有一段时间(~4 或 5 天)没问题,但在周末它开始失败并出现以下异常:

org.apache.hadoop.hbase.NotServingRegionException: Region pageviews,,1463568860289.298bb29bbd148a0a62ec90885ef8d027. is not online on //some address here
        at org.apache.hadoop.hbase.regionserver.HRegionServer.getRegionByEncodedName(HRegionServer.java:2786)
        at org.apache.hadoop.hbase.regionserver.RSRpcServices.getRegion(RSRpcServices.java:922)
        at org.apache.hadoop.hbase.regionserver.RSRpcServices.mutate(RSRpcServices.java:1965)
        at org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService.callBlockingMethod(ClientProtos.java:32203)
        at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2034)
        at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:107)
        at org.apache.hadoop.hbase.ipc.RpcExecutor.consumerLoop(RpcExecutor.java:130)
        at org.apache.hadoop.hbase.ipc.RpcExecutor.run(RpcExecutor.java:107)
        at java.lang.Thread.run(Thread.java:745)

我做了什么:

如果有人对这里的问题到底是什么有任何想法,我将不胜感激。目前我有点一头雾水

谢谢

似乎一个特定的 table 及其区域已损坏(您可以按照您的描述从 hbase shell 访问其他 tables),请尝试 hbase hbck 特定的 table 名称可能会解决此问题

Other Option : 您可以通过增加打开区域所需的线程数来解决此问题,以便可以为元区域分配甚至本地索引 table 的线程仍在等待消除死锁。

<property> <name>hbase.regionserver.executor.openregion.threads</name> <value>100</value> </property>