
# 查看HBase慢请求和超大请求信息
#### 操作场景
该章节主要介绍如何在HBase Shell命令行查询慢请求或超大请求信息。慢请求是指通过**hbase shell** 命令查询服务端时，RPC请求响应时长超过阈值（即HBase服务端配置参数"hbase.ipc.warn.response.time"，默认值为"3000"ms）的请求；超大请求是指通过**hbase shell**命令查询服务端时，RPC请求一次返回数据量大小超过阈值（即HBase服务端配置参数"hbase.ipc.warn.response.size"，默认值为"5MB"）的请求。
每个RegionServer节点默认会缓存最近的256条慢请求和超大请求，可以通过FusionInsight Manager中HBase服务端配置参数"hbase.regionserver.slowlog.ringbuffer.size"调整缓存的大小。
#### 约束与限制
该章节内容仅适用于MRS 3.3.0-LTS及之后版本。
#### 命令说明
该操作主要涉及新增的**hbase shell**命令如下：
- **get_slowlog_responses**：查询慢请求信息。
- **get_largelog_responses：**查询超大请求信息。
- **clear_slowlog_responses**：清理RegionServer缓存中的数据。
可以在**hbase shell**中执行如下命令查看相关命令如何使用：
```
help 'cmdName'
```
例如，执行以下命令查看**clear_slowlog_responses**命令的使用方法：
```
help 'clear_slowlog_responses'
```
![](https://support.huaweicloud.com/cmpntguide-lts-mrs/zh-cn_image_0000001726282809.png "点击放大")
#### 查看请求信息
由于**get_slowlog_responses** 和**get_largelog_responses** 使用方法和支持的参数一致，这里主要介绍**get_slowlog_responses**的使用方法。
已登录HBase Shell命令行，详细操作请参见[HBase客户端使用实践](https://support.huaweicloud.com/cmpntguide-lts-mrs/mrs_01_0340.html)。
- 查看所有RegionServer的慢请求：
  ```
  get_slowlog_responses '*', {'LIMIT' => 50}
  ```
  "LIMIT"参数控制每个RegionServer返回的记录条数，如果不指定则默认返回10条。
  
- 查看指定RegionServer的慢请求：
  ```
  get_slowlog_responses ['SERVER_NAME1', 'SERVER_NAME2']
  ```
  参数SERVER_NAME1、SERVER_NAME2为要查看的RegionServer的ServerName，支持一到多个参数。可以登录FusionInsight Manager，选择"集群 \> 服务 \> HBase"，单击"HMaster WebUI"后的超链接进入HBase WebUI界面，在"Region Servers"区域的"Base Stats"页签的"ServerName"获取所有的RegionServer的ServerName。
  
- 查看指定表、指定Region的慢请求： 查看指定表的慢请求：
  ```
  get_slowlog_responses '*', {'TABLE_NAME' => 't1'}
  ```
  查看指定Region的慢请求：
  ```
  get_slowlog_responses '*', {'REGION_NAME' => 'hbase:meta,,1'}
  ```
  查看指定表和Region的慢请求：
  ```
  get_slowlog_responses '*', {'REGION_NAME' => 'hbase:meta,,1', 'TABLE_NAME' => 't1', 'FILTER_BY_OP' => 'AND'}
  ```
  参数TABLE_NAME和REGION_NAME分别为指定的表名和Region名，如果指定参数**'FILTER_BY_OP' =\> 'AND'**，则返回的每条结果必须匹配所有的指定条件，否则只需匹配任一条件即可。
  
- 查看指定用户、指定客户端的慢请求，以下命令表示返回满足USER或CLIENT_IP的结果：
  ```
  get_slowlog_responses '*', {'USER' => 'user_name', 'CLIENT_IP' => '192.162.1.40:60225'}
  ```
  参数USER和CLIENT_IP为要匹配的用户名和客户端IP及端口号，如果指定参数**'FILTER_BY_OP' =\> 'AND'**，则返回同时匹配USER和CLIENT_IP的结果，否则只需匹配USER和CLIENT_IP任一条件即可。
  
 
#### 清理请求信息
已登录HBase Shell命令行，详细操作请参见[HBase客户端使用实践](https://support.huaweicloud.com/cmpntguide-lts-mrs/mrs_01_0340.html)。
- 清理所有RegionServer慢请求和超大请求数据的缓存：
  ```
  clear_slowlog_responses
  ```
  

- 清理指定RegionServer的慢请求和超大请求数据的缓存：
  ```
  clear_slowlog_responses ['SERVER_NAME1', 'SERVER_NAME2']
  ```
  
 
