CentOS上HBase性能调优要点
一 操作系统与硬件层优化
二 JVM与内存规划
三 HBase核心参数与读写路径调优
| 维度 | 参数 | 建议与说明 |
|---|---|---|
| 写入 | hbase.hregion.memstore.flush.size | 默认134217728(128MB);建议为HDFS块大小整数倍,高写入可适当增大以减少flush次数 |
| 写入 | hbase.regionserver.global.memstore.size | 默认0.4;可按“写活跃Region数 × flush.size / RegionServer堆”估算,避免频繁全局flush |
| 写入 | hbase.hstore.compaction.min / blockingStoreFiles | 小合并阈值与阻塞阈值;高写入可适当增大,减少阻塞与写放大 |
| 写入 | hbase.wal.hsync / hbase.hfile.hsync | 连续Put强一致场景可权衡开启/关闭以换取吞吐与持久化强度的平衡 |
| 读取 | hfile.block.cache.size | 默认0.25(堆内)/0.1(堆外);读多可提高该占比,读少可让位于MemStore |
| 读取 | hbase.client.scanner.caching | 默认100;大Scan可提升到500–10000,减少RPC次数(注意内存占用) |
| 读取 | hbase.client.scanner.timeout.period | 默认60000ms;读高负载可适当增大,避免超时 |
| RPC | hbase.regionserver.handler.count | 默认30;建议≈CPU核数,高并发可提升到200–400并配合队列与隔离策略 |
| 压缩 | HFile压缩(如Snappy) | 启用压缩降低I/O与网络开销,提升扫描与读取性能 |
四 表设计与数据布局
五 运维监控与常见瓶颈排查