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

开启HBase分时Compaction功能

操作场景

HBase支持设置非业务高峰期和非高峰期的Compaction吞吐量,通过在非高峰期设置较大的吞吐量,加快Compaction的执行速度,减小高峰期Compaction对业务的影响。

配置HBase分时Compaction吞吐量参数

登录FusionInsight Manager,选择“集群 > 服务 > HBase > 配置”,在搜索框中搜索表1中的参数,并根据业务实际情况修改参数值以启用HBase分时Compaction吞吐量功能,且参数支持动态生效,修改配置保存后,登录hbase shell命令行执行update_all_config即可更新配置,无需重启实例。

开启HBase分时Compaction吞吐量功能需“hbase.offpeak.start.hour”和“hbase.offpeak.end.hour”参数值都不为“-1”。

表1 配置HBase分时Compaction吞吐量参数

参数名称

参数描述

默认值

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配置示例

  1. 登录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之间为非高峰期。

  2. 非高峰期时,在Manger界面选择“集群 > 服务 > HBase > 图表”,观察图表“Compaction操作队列大小-所有实例”的值是否一直在增大,且图表“RegionServer Compaction流量-所有实例”有部分RegionServer的值已达到或超过“hbase.hstore.compaction.throughput.offpeak”配置项的值。

    • 是,根据集群磁盘使用情况调大“hbase.hstore.compaction.throughput.offpeak”配置项的值,执行3
    • 否,结束。

  3. 观察HBase图表“P99 RegionServer的RPC请求响应时间-所有实例”的值是否持续上升:

    • 是,执行4
    • 否,结束。

  4. 观察RegionServer所在主机的图表“磁盘IO利用率”的值是否超过90%:

    • 是,磁盘IO已达到瓶颈,考虑减小写入速度或者扩容磁盘。
    • 否,结束。