1.现象:10.22.33.41机器频繁出现告警,每20分钟一次,可以复现
现后台登录10.22.33.41机器,使用top c 命令定位到cpu高的进程,发现该进程就hbase相关的
登录HD集群的WebUI界面,选hbase集群
Hbase->实例 ->找到cup告警的实例 ->进入该实例
RegionServer CPU统计 -> 每隔段时间都会有cpu过高的情况
2.排查
HMaster WebUI(主) ->Region Servers -> 看Num. Regions数量是否均衡
Regions -> Request metris -> Read Request Count
这步先把下图数据拷贝到一份Excel,等cpu高峰之后再拷贝一份,做对比,定位高峰比平峰哪些表读写请求增长快
以上步骤定位到HBASE_TPI该表导致的10.22.33.41 cup过高
通过表名再定位HBASE_TPI表对应的Region
Home -》搜索表名HBASE_TPI -> 复制Region名称出来备用
HBASE_TPI,200a2857cd2e162b8af5298a21e5994e,1710731327389.045aa82b47f469698792160419d6aaab.
HBASE_TPI,1710731327389.f206ab4614748c717b24c05b845f85e6.
先把region先移动到其他实例,观察10.22.33.41 cup是否降下来, 并观察10.22.9.4,10.22.9.6节点cpu是否明显上升, 确认该表HBASE_TPI导致cup过高
Hbase shell执行移动region命令:
move ‘045aa82b47f469698792160419d6aaab’,‘tpi04,21302,1701846496478’
move ‘f206ab4614748c717b24c05b845f85e6’,‘tpi06,21302,1692893131315’
3.方案
临时方案:切分热点region
Hbase shell执行切分region命令,会把原先1个region切分为2个region,切分完成后再执行合并的动作, 可以暂时缓解region热点问题
split ‘045aa82b47f469698792160419d6aaab’
split ‘f206ab4614748c717b24c05b845f85e6’
split ‘0d783993a76bdd826a374e11a4d3248a’
major_compact ‘HBASE_TPI’
再查看HBASE_TPI region是否均衡
最终方案:删除该表HBASE_TPI,重建表并指定预分区为当前分区的3倍
4.重启regionserver(看某个regionserver是否读写明显超其他regionserve,如有该情况可重启单个regionserver节点)
Hbase -> 实例 -> 分别进入每个 RegionServer -> 单个RegionServer读写请求次数
重启regionserver节点过程
勾选节点 ->更多 ->重启