更新时间:2024-12-11 GMT+08:00

配置HBase表级别过载控制

操作场景

HBase在短时间内请求数量突增时,会发生过载问题,导致业务请求P99时延增大,对于时延敏感业务影响比较严重。HBase表级别过载保护用于此类场景,开启后可以有效保障核心表(核心业务)的请求时延。

本章节内容仅适用于MRS 3.3.1及之后版本。

操作步骤

  1. 修改核心表属性,设置表级别优先级。

    1. 以客户端安装用户登录安装了HBase客户端的节点,并配置环境变量。

      cd HBase客户端安装目录

      source bigdata_env

    2. 集群已启用Kerberos认证(安全模式),需执行以下命令认证用户。

      kinit 组件业务用户

    3. 执行以下命令登录HBase客户端并修改表描述:

      hbase shell

      alter 'test_table', PRIORITY=>'1'

      • 表优先级可以通过PRIORITY属性进行设置,当PRIORITY值大于等于1时,被认为是高优先级表,建议设置为“1”即可。
      • 创建核心表时可以直接指定PRIORITY属性,例如:

        create 'test_table','cf',PRIORITY=>'1'

  2. 登录FusionInsight Manager界面,选择“集群 > 服务 > HBase > 配置 > 全部配置”,在搜索框中搜索表1中的参数,并修改对应参数值。

    表1 HBase表级别过载控制参数

    参数名称

    参数说明

    参数修改建议

    hbase.ipc.server.default.callqueue.size.overload.threshold

    RegionServer队列过载阈值,当队列中请求总大小占比超过此阈值时,会直接丢弃低优先级表的请求。该配置用于保障核心业务表请求时延。

    当开启队列普通请求限制(保护内部高优先级请求)功能时,即“hbase.ipc.server.max.default.callqueue.size.ratio”参数值不为0,队列过载阈值会受到普通请求队列最大占比限制,最终生效值为两者的乘积。

    • 需要综合考虑核心表业请求量以及时延要求,核心表时延要求越高/请求越多,建议设置越小的值,通常可设置为:0.5~1.0。
    • 可根据实际业务需求单独或同时开启两种过载控制,RegionServer队列过载控制适用于存在大请求过载的场景,RegionServer handler过载控制适用于高并发过载的场景。

    hbase.ipc.server.handler.overload.threshold

    RegionServer handler过载阈值,当活跃handler数占比超过此阈值时,会直接丢弃低优先级表的请求。该配置用于保障核心业务表请求时延。

  3. 单击“保存”,在保存配置界面单击“确定”保存配置。
  4. 单击“实例”,勾选所有RegionServer实例,选择“更多 > 重启实例”重启RegionServer实例。