文档首页/ MapReduce服务 MRS/ 用户指南/ MRS集群运维/ MRS集群告警处理参考/ ALM-19039 RegionServer平均单Store下StoreFile数量超阈值
更新时间:2026-06-16 GMT+08:00
分享

ALM-19039 RegionServer平均单Store下StoreFile数量超阈值

告警解释

系统每30秒周期性检测HBase RegionServer实例的StoreFile数量和Store数量,进行相除求平均,并把结果与阈值相比较,默认当连续5次检测到请求数超出告警阈值(默认为20)时产生该告警。

当HBase RegionServer实例上平均单Store下StoreFile数量小于或等于阈值时,告警恢复。

本章节仅适用于MRS 3.6.0-LTS及之后版本。

告警属性

告警ID

告警级别

是否可自动清除

19039

重要

告警参数

类别

参数名称

参数含义

定位信息

来源

产生告警的集群名称。

服务名

产生告警的服务名称。

角色名

产生告警的角色名称。

主机名

产生告警的主机名。

附加信息

Threshold

产生告警的阈值。

对系统的影响

RegionServer平均单Store下StoreFile数量超过阈值,表示该RegionServer存在单Store下StoreFile数量过多的情况,会对HBase业务读操作造成压力,导致读性能下降和Compaction任务压力较大,最终可能导致写入反压。

可能原因

  • 集群写入压力过大,Compaction队列积压。
  • Compaction任务未正常执行,例如关闭了自动Major Compaction,且未人工保证定时执行Major Compaction或关闭了Compaction动作。
  • HBase Region分区不合理,写操作数据集中到某几个Region中或RegionServer上。

处理步骤

  1. 登录Manager界面,选择“运维 > 告警 > 告警”,选择“告警ID”为“19039”的告警,查看“定位信息”中产生该告警的HBase服务实例和主机名。

检查HBase Compaction任务压力

  1. 观察上报告警的相同节点是否存在“ALM-19018 HBase合并队列超阈值”告警。

  2. 参考“ALM 19018 HBase合并队列超阈值”的处理步骤处理该故障。
  3. 等待几分钟后检查本告警是否恢复。

    • 是,处理完毕。
    • 否,执行步骤 5

检查HBase Compaction任务是否正常执行

  1. 在Manager首页,选择“集群 > 服务 > HBase> 配置”,在搜索框中搜索“hbase.hregion.majorcompaction”,并查看该参数值是否为“0”。

  2. “hbase.hregion.majorcompaction”参数值为“0”表示自动Major Compaction被禁用。需要业务运维侧自行对齐执行Major Compaction时间,优先选择业务低峰期,以保证Major Compaction任务定期正常执行。

    其中,Major Compaction操作可在hbase shell中通过以下命令查看不同合并对象的具体命令示例,再手动执行major_compact操作:

    help 'major_compact'

  3. Major Compaction任务执行完成后,等待几分钟检查本告警是否恢复。

    • 是,处理完毕。
    • 否,执行步骤 8

  4. 在Manager首页,选择“集群 > 服务 > HBase> 配置”,在搜索框中搜索“hbase.hstore.compaction.min”,并查看该参数值是否大于告警上报阈值(默认值为20)。

  5. Minor Compaction将因单Store下的StoreFile没有达到触发阈值而不执行,业务运维侧需评估业务风险以及参数配置合理性。根据实际需求调整相关配置,并重启RegionServer使配置生效。
  6. 等待一段时间后检查本告警是否恢复。

    • 是,处理完毕。
    • 否,执行步骤 11

  7. 选择“集群 > 服务 > HBase >实例”,单击上报告警的RegionServer实例,选择“图表”,在“图表分类”中选择“队列”,查看“队列大小”监控图表,确认“Compaction操作队列大小”是否为“0”。

  8. 确认当前集群资源能够正常执行Minor Compaction操作,并在hbase shell中执行以下命令:

    compaction_switch 'true'

    该命令将返回各RegionServer的Compaction线程池之前状态,若返回“Servername 'false'”, 即表示此前对应RegionServer上的Compaction任务被关闭。

  9. 执行完手动命令后,等待一段时间后检查本告警是否恢复。

    • 是,处理完毕。
    • 否,执行步骤 14

检查HBase Region分区是否存在不合理

  1. 在Manager首页,选择“集群 > 服务 > HBase”,在“概览”页面单击“HMaster Web UI”右侧的超链接进入HBase WebUI页面,在“Home”页面的“ Region Servers”区域单击上报告警的RegionServer名称进入详细信息页面,在“Regions”区域选择“Storefile Metrics”页签,对指标中的“Num.Storefiles”进行排序,查看并记录该值超过“20”的“Region Name”列中的表名,“Region Name”的格式为“表名,startkey,时间戳,encodedRegionName”。
  2. 返回HBase WebUI的“Home”页面,在“Tables”区域单击查看到的表名称进入对应表信息页面,在“Table Regions”区域对“Num.Storefiles”进行排序,确认是否存在某几个Region下StoreFile数量突出,且数据量远大于其余Region。

  3. hbase shell中执行以下命令对Region进行分裂操作,以均衡该Region数据分布:

    split 'RegionName'

  4. 执行完手动命令后,等待一段时间后检查本告警是否恢复。

    • 是,处理完毕。
    • 否,执行步骤 18

收集故障信息

  1. 在Manager界面,选择“运维 > 日志 > 下载”。
  2. 在“服务”中勾选待操作集群的“HBase”。
  3. 单击右上角的时间编辑按钮,设置日志收集的“开始时间”和“结束时间”分别为告警产生时间的前后10分钟,单击“下载”。
  4. 请联系运维人员,并发送已收集的故障日志信息。

告警清除

此告警修复后,系统会自动清除此告警,无需手工清除。

参考信息

不涉及。

相关文档