hbase集群archive目录过大问题处理
1.问题现象
现场反馈hbase集群/hbase/archive目录过大,大小约为1.52PB
- 现场集群已经清理掉2个月以前的snapshot文件,当前archive目录文件仍不能释放
- 现场发现1T以上的archive子目录有211个
- 查看集群hbase配置,hmaster堆栈大小20GB,hmaster清理周期5分钟
- 查看hmaster进程分配内存占用6G上下
问题分析
-
HMaster内存估算,假如/hbase/archive目录下有1亿个文件,每个文件名的大小为160B,
则master内存按如下方式估算:
160 * 1亿/1024/1024/1024 ≈ 15 GB
目前master内存已使用6G,再加上估算出来的15GB,共21GB,占配置内存百分比为21/24 ≈ 0.85 。因此当扫描所有文件时,内存占用会达到85%,这将导致HMaster频繁GC。因此建议将master内存调大。
可以将现场集群master内存调整为48G。 -
借鉴之前主集群/hbase/archive目录过大的处理经验(500TB),当时HFileCleaner的清理周期调整为30分钟后,基本可以在一个清理周期内完成扫描并清理冗余数据。目前集群共1.52