查看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 及之后版本。
命令说明
该操作主要涉及新增的hbase shell命令如下:
- get_slowlog_responses:查询慢请求信息。
- get_largelog_responses:查询超大请求信息。
- clear_slowlog_responses:清理RegionServer缓存中的数据。
可以在hbase shell中执行如下命令查看相关命令如何使用:
help 'cmdName'
例如,执行help 'clear_slowlog_responses'查看clear_slowlog_responses命令的使用方法:
查看请求信息
由于get_slowlog_responses和get_largelog_responses使用方法和支持的参数一致,这里主要介绍get_slowlog_responses的使用方法。
已登录HBase Shell命令行,详细操作请参见HBase客户端使用实践。
- 查看所有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'}
get_slowlog_responses '*', {'REGION_NAME' => 'hbase:meta,,1'}
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客户端使用实践。
清理所有RegionServer或者指定RegionServer的慢请求和超大请求数据的缓存,命令为:
clear_slowlog_responses
clear_slowlog_responses ['SERVER_NAME1', 'SERVER_NAME2']