文档首页/ MapReduce服务 MRS/ 组件操作指南(阿布扎比区域)/ 使用HBase/ HBase常见问题/ 客户端连接服务端时,长时间无法连接成功
更新时间:2024-07-19 GMT+08:00

客户端连接服务端时,长时间无法连接成功

问题

在HBase服务端出现问题,无法提供服务,此时HBase客户端进行表操作,会出现该操作挂起,长时间无任何反应。

回答

问题分析

当HBase服务端出现问题,HBase客户端进行表操作的时候,会进行重试,并等待超时。该超时默认值为Integer.MAX_VALUE (2147483647 ms),所以HBase客户端会在这么长的时间内一直重试,造成挂起表象。

解决方法

HBase客户端提供两个配置项来控制客户端的重试超时方式,如表1

在“客户端安装路径/HBase/hbase/conf/hbase-site.xml”配置文件中配置如下参数。

表1 HBase客户端操作重试超时相关配置

配置参数

描述

默认值

hbase.client.operation.timeout

客户端操作超时时间。需在配置文件中手动添加。

2147483647 ms

hbase.client.retries.number

最大重试次数。用于表示所有可重试操作所支持的最大重试次数。

35

这两个参数的重试超时的配合方式如图1所示。

图1 HBase客户端操作重试超时流程

从该流程可以看出,如果未对这两个配置参数根据具体使用场景进行配置,会造成挂起迹象。建议根据使用场景,配置合适的超时时间,如果是长时间操作,则把超时时间设置长一点;如果是短时间操作,则把超时时间设置短一点。而重试次数可以设置为:“(hbase.client.retries.number)*60*1000(ms)”。刚好大于“hbase.client.operation.timeout”设置的超时时间。