更新时间:2024-09-18 GMT+08:00
分享

查看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_responsesget_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']

相关文档