提升HBase非业务高峰期的Compaction执行速度
操作场景
HBase支持设置非业务高峰期和非高峰期的Compaction吞吐量,通过在非高峰期设置较大的吞吐量,加快Compaction的执行速度,减小高峰期Compaction对业务的影响。
该操作仅MRS 3.3.0及之后版本支持。
配置HBase分时Compaction吞吐量参数
登录FusionInsight Manager,选择“集群 > 服务 > HBase > 配置”,在搜索框中搜索表1中的参数,并根据业务实际情况修改参数值以启用HBase分时Compaction吞吐量功能,且参数支持动态生效,修改配置保存后,登录hbase shell命令行执行update_all_config即可更新配置,无需重启实例。
开启HBase分时Compaction吞吐量功能需“hbase.offpeak.start.hour”和“hbase.offpeak.end.hour”参数值都不为“-1”。
参数名称 |
参数描述 |
默认值 |
---|---|---|
hbase.offpeak.start.hour |
HBase集群运行的非高峰开始时间,取值范围为:-1~23,且值只能为整数,当参数值为“-1”则不支持HBase分时Compaction吞吐量功能。 |
-1 |
hbase.offpeak.end.hour |
HBase集群运行的非高峰结束时间,取值范围为:-1~23,且值只能为整数,当参数值为“-1”则不支持HBase分时Compaction吞吐量功能。 |
-1 |
hbase.hstore.compaction.throughput.offpeak |
非高峰期Compaction吞吐量,单位为:bytes/秒。 |
104857600 |
HBase分时Compaction配置示例
- 登录FusionInsight Manager,选择“集群 > 服务 > HBase > 配置”,根据业务实际情况设置非高峰期时段。例如:
- 设置“hbase.offpeak.start.hour”参数值为“18”,设置“hbase.offpeak.end.hour”参数值为“23”时,表示每天18:00到23:00之间为非高峰期。
- 设置“hbase.offpeak.start.hour”参数值为“23”,设置“hbase.offpeak.end.hour”参数值为“8”时,表示每天23:00到第二天8:00之间为非高峰期。
- 非高峰期时,在Manager界面选择“集群 > 服务 > HBase > 图表”,观察图表“Compaction操作队列大小-所有实例”的值是否一直在增大,且图表“RegionServer Compaction流量-所有实例”有部分RegionServer的值已达到或超过“hbase.hstore.compaction.throughput.offpeak”配置项的值。
- 是,根据集群磁盘使用情况调大“hbase.hstore.compaction.throughput.offpeak”配置项的值,执行3。
- 否,结束。
- 观察HBase图表“P99 RegionServer的RPC请求响应时间-所有实例”的值是否持续上升:
- 是,执行4。
- 否,结束。
- 观察RegionServer所在主机的图表“磁盘IO利用率”的值是否超过90%:
- 是,磁盘IO已达到瓶颈,考虑减小写入速度或者扩容磁盘。
- 否,结束。