将hbase客户端从0.98升级到1.1时的TableNotFoundException

时间:2018-01-03 11:05:08

标签: hadoop hbase hortonworks-data-platform hbase-client

我刚从版本0.98升级到HortonWorks HBase客户端1.1.2.2.4.2.0-258。一切都在本地工作正常,但在生产负载几分钟后,我开始有TableNotFoundException:

Caused by: org.apache.hadoop.hbase.TableNotFoundException
at org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation.locateRegionInMeta(ConnectionManager.java:1264)
at org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation.locateRegion(ConnectionManager.java:1162)
at org.apache.hadoop.hbase.client.RpcRetryingCallerWithReadReplicas.getRegionLocations(RpcRetryingCallerWithReadReplicas.java:300)
at org.apache.hadoop.hbase.client.ScannerCallableWithReplicas.call(ScannerCallableWithReplicas.java:152)
at org.apache.hadoop.hbase.client.ScannerCallableWithReplicas.call(ScannerCallableWithReplicas.java:60)
at org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithoutRetries(RpcRetryingCaller.java:200)
at org.apache.hadoop.hbase.client.ClientScanner.call(ClientScanner.java:320)
at org.apache.hadoop.hbase.client.ClientScanner.nextScanner(ClientScanner.java:295)
at org.apache.hadoop.hbase.client.ClientScanner.initializeScannerInConstruction(ClientScanner.java:160)
at org.apache.hadoop.hbase.client.ClientScanner.<init>(ClientScanner.java:155)
at org.apache.hadoop.hbase.client.HTable.getScanner(HTable.java:821)

这种行为似乎是随机的,不可预测的,例如:重复相同的请求才起作用(即没有抛出异常并成功检索数据)

我试图了解从0.98到1.1的变化,我找到的唯一重要的事情是https://issues.apache.org/jira/browse/HBASE-16973

玩弄这些价值并没有帮助。

我还应该考虑其他任何事情吗?任何指针都非常感谢!

谢谢!

1 个答案:

答案 0 :(得分:0)

问题在于我们如何使用HConnection对象,它们有几个实例(我同意,这不是使用它的正确方法,IIUC)。在新版本的hbase客户端中,每个HConnection还有几个用于元查找的“hconnection”线程。所有这些累积导致JVM无法处理的极高数量的线程。使用单个HConnection实例后,问题就消失了,一切都按预期工作。