【发布时间】:2015-06-18 18:46:01
【问题描述】:
我正在运行 Hbase 1.0.1/Hadoop 2.5.2。我正在尝试对表运行扫描,但出现 RPC 超时。
我已将 Hbase RPC 超时更改为 2 分钟,我可以通过 UI 确认...
<property>
<name>hbase.rpc.timeout</name>
<value>120000</value>
<source>hbase-site.xml</source>
</property>
...但是我的客户端在 60 秒后仍然超时...
Caused by: java.io.IOException: Call to xxxxxxx/172.16.5.13:16020 failed on local exception: org.apache.hadoop.hbase.ipc.CallTimeoutException: Call id=2968, waitTime=60001, operationTimeout=60000 expired.
at org.apache.hadoop.hbase.ipc.RpcClientImpl.wrapException(RpcClientImpl.java:1235)
at org.apache.hadoop.hbase.ipc.RpcClientImpl.call(RpcClientImpl.java:1203)
at org.apache.hadoop.hbase.ipc.AbstractRpcClient.callBlockingMethod(AbstractRpcClient.java:216)
at org.apache.hadoop.hbase.ipc.AbstractRpcClient$BlockingRpcChannelImplementation.callBlockingMethod(AbstractRpcClient.java:300)
at org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$BlockingStub.scan(ClientProtos.java:31751)
at org.apache.hadoop.hbase.client.ScannerCallable.call(ScannerCallable.java:199)
at org.apache.hadoop.hbase.client.ScannerCallable.call(ScannerCallable.java:62)
at org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithRetries(RpcRetryingCaller.java:126)
... 6 more
Caused by: org.apache.hadoop.hbase.ipc.CallTimeoutException: Call id=2968, waitTime=60001, operationTimeout=60000 expired.
at org.apache.hadoop.hbase.ipc.Call.checkAndSetTimeout(Call.java:70)
at org.apache.hadoop.hbase.ipc.RpcClientImpl.call(RpcClientImpl.java:1177)
... 12 more
我尝试更改缓存块大小,但这似乎没有任何区别。
还有其他一些我错过的超时。表中有很多行(数百万),虽然扫描只返回 10 的数千,但问题似乎只出在一组特定的区域。
【问题讨论】:
-
我有同样的问题,你解决了吗?谢谢
-
我最终放弃了。我们正在写入的数据量开始超过我们 HBase 平台的吞吐量。由于原始事件数据与我们的事件计数器相比具有次要价值,我们决定停止将其记录在 HBase 中。我们现在将它作为 JSON 记录写入文本文件,如果需要,我们仍然可以运行 map reduce 作业,并将 HBase 留给更关键的数据。
标签: hbase