
# HBase客户端连接服务端时，长时间无法连接成功
#### 问题
在HBase服务端出现问题，无法提供服务，此时HBase客户端进行表操作，会出现该操作挂起，长时间无任何反应。
#### 回答
**问题分析**
当HBase服务端出现问题，HBase客户端进行表操作的时候，会进行重试，并等待超时。该超时默认值为Integer.MAX_VALUE (2147483647 ms)，所以HBase客户端会在这么长的时间内一直重试，造成挂起表象。
**解决方法**
HBase客户端提供两个配置项来控制客户端的重试超时方式，如[表1]。
在"*客户端安装路径*/HBase/hbase/conf/hbase-site.xml"配置文件中配置如下参数。
 表1HBase客户端操作重试超时相关配置 
| **配置参数**                       | **描述**                        | **默认值**       |
|:---|:---|:---|
| hbase.client.operation.timeout | 客户端操作超时时间。需在配置文件中手动添加。        | 2147483647 ms |
| hbase.client.retries.number    | 最大重试次数。用于表示所有可重试操作所支持的最大重试次数。 | 35            |
   
这两个参数的重试超时的配合方式如[图1]所示。
图1HBase客户端操作重试超时流程   
![](https://support.huaweicloud.com/cmpntguide-mrs/zh-cn_image_0266013853.jpg)
从该流程可以看出，如果未对这两个配置参数根据具体使用场景进行配置，会造成挂起迹象。建议根据使用场景，配置合适的超时时间，如果是长时间操作，则把超时时间设置长一点；如果是短时间操作，则把超时时间设置短一点。而重试次数可以设置为："(hbase.client.retries.number)\*60\*1000(ms)"。刚好大于"hbase.client.operation.timeout"设置的超时时间。
