我正在运行hbase 1.0.1/hadoop 2.5.2。我正试图对一个表运行扫描,但我得到rpc超时。
我已经改变了hbase rpc超时为2分钟,我可以确认frm的用户界面。。。
<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千行,但问题似乎只存在于一组特定的区域。
5条答案
按热度按时间iklwldmw1#
当服务器收到扫描rpc请求时,时间限制计算为两个值中较小值的一半:hbase.client.scanner.timeout.period和hbase.rpc.timeout(这两个值都默认为60000毫秒或一分钟)。这就是为什么设置2分钟后,您的扫描会在60秒内超时。
当达到时间限制时,服务器将返回到该时间点为止累积的结果。此结果集可能为空。如果您的使用模式包括扫描时间超过一分钟,您可以增加这些值。
为确保超时时间不太短,可以将hbase.cells.scanned.per.heartbeat.check配置为在进行超时检查之前必须扫描的最小单元格数。默认值为10000。值越小,超时检查越频繁。
以下链接可能有助于配置hbase扫描的超时:
https://docs.hortonworks.com/hdpdocuments/hdp2/hdp-2.4.2/bk_installing_manually_book/content/best-practices-timeouts-phoenix.html
https://www.cloudera.com/documentation/enterprise/5-5-x/topics/admin_hbase_scanner_heartbeat.html#concept_xsl_dz1_jt
klh5stk12#
当您在客户端而不是在中创建连接时,请尝试此操作
hbase-site.xml
:z5btuh9x3#
基于最初的答案。在打开与hbase群集的连接之前,我配置了hbase.client.scanner.timeout.period和hbase.rpc.timeout属性:
ewm0tg9j4#
对于超时,您需要更改的是:
g6ll5ycj5#
这个应该有用。