我有一个异步应用程序,使用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$2.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$1.run(RpcExecutor.java:107)
at java.lang.Thread.run(Thread.java:745)
我做了什么:
./hbase zkcli
然后运行rmr /hbase/root-region-server
登录到zookeeper shell - 我是根据以下链接执行此操作的:http://rogueleaderr.com/post/32963921889/hbase-error-region-is-not-online-root-0。这不适用于以下错误:Node does not exist: /hbase/root-region-server
。我尝试解决此问题并遇到此解决方案建议:HBase: /hbase/meta-region-server node does not exist。所以我跑了:rmr /hbase/meta-region-server
没有做任何事情(至少它没有写任何东西)如果有人对这里的问题究竟是什么有任何想法,我会很感激。目前,我有点在黑暗中
由于
答案 0 :(得分:4)
看起来像一个特定的表并且其区域已损坏(您可以如您所述从hbase shell访问其他表),请尝试hbase hbck对特定的表名称进行修复
Other Option: 你可以通过增加打开区域所需的线程数来解决这个问题,这样就可以为本地索引表分配元区域,甚至还在等待删除死锁。
<property> <name>hbase.regionserver.executor.openregion.threads</name> <value>100</value> </property>