配置HBase表级别过载控制
操作场景
HBase在短时间内请求数量突增时,会发生过载问题,导致业务请求P99时延增大,对于时延敏感业务影响比较严重。HBase表级别过载保护用于此类场景,开启后可以有效保障核心表(核心业务)的请求时延。
本章节内容仅适用于MRS 3.3.1及之后版本。
操作步骤
- 修改核心表属性,设置表级别优先级。
- 以客户端安装用户登录安装了HBase客户端的节点,并配置环境变量。
source bigdata_env
- 若集群已启用Kerberos认证(安全模式),需执行以下命令认证用户。
kinit 组件业务用户
- 执行以下命令登录HBase客户端并修改表描述:
alter 'test_table', PRIORITY=>'1'
- 表优先级可以通过PRIORITY属性进行设置,当PRIORITY值大于等于1时,被认为是高优先级表,建议设置为“1”即可。
- 创建核心表时可以直接指定PRIORITY属性,例如:
create 'test_table','cf',PRIORITY=>'1'
- 以客户端安装用户登录安装了HBase客户端的节点,并配置环境变量。
- 登录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数占比超过此阈值时,会直接丢弃低优先级表的请求。该配置用于保障核心业务表请求时延。
- 单击“保存”,在保存配置界面单击“确定”保存配置。
- 单击“实例”,勾选所有RegionServer实例,选择“更多 > 重启实例”重启RegionServer实例。