hbase.regionserver.global.memstore.size参数(控制MemStore大小,通常为堆内存的30%-40%),避免频繁刷盘。ulimit -n 65535(永久生效需修改/etc/security/limits.conf)。sysctl -w net.core.rmem_max=16777216 # 接收缓冲区最大值
sysctl -w net.core.wmem_max=16777216 # 发送缓冲区最大值
vm.swappiness=0(添加到/etc/sysctl.conf并执行sysctl -p生效)。yum install ntp -y && systemctl start ntpd。-XX:+UseG1GC),并调整GC参数(如-XX:MaxGCPauseMillis=200)减少停顿时间。hbase.regionserver.handler.count),默认10,可根据并发量调整至50-100,提升并发处理能力。hbase.client.autoFlush=false),增大写缓冲区(hbase.client.write.buffer,默认2MB,可设为64MB-256MB),通过htable.put(List<Put>)批量提交数据,减少RPC调用次数。hbase.regionserver.wal.codec),选择高效的编码器(如IndexedWALEditCodec);若对数据一致性要求不高,可延迟WAL写入(hbase.regionserver.optionallogflushinterval),提升写入性能。hfile.block.cache.size),读密集型业务可设为堆内存的40%-50%,缓存热点数据,提升读取效率。hbase.hstore.compaction.strategy),如使用TieredCompactionPolicy(适合读多写少场景),减少HFile文件数量(hbase.hstore.compaction.max,默认10,可设为20-30),降低读取时的文件查找开销。Long.MAX_VALUE - timestamp),防止数据集中在单个Region。hbase.hcolumn.family.compression,推荐Snappy或LZ4,平衡压缩率与速度);设置数据TTL(hbase.hcolumn.family.ttl),自动清理过期数据,减少存储压力。SPLIT参数预先划分Region(如按时间范围、哈希值分割),使数据均匀分布到多个Region,避免后期热点问题。htable.get(List<Get>)和htable.put(List<Put>)接口,减少客户端与RegionServer间的RPC交互次数,提升批量读写性能。Scan.setCaching(int)(默认100),将缓存大小增至500-1000,减少Scan操作的RPC次数;避免全表扫描,尽量使用StartRow/StopRow限定扫描范围。Scan.addFamily(Bytes.toBytes("cf1")))或列(Scan.addColumn(Bytes.toBytes("cf1"), Bytes.toBytes("col1"))),避免加载不必要的数据,提升查询速度。hbase.log),查找Full GC、RegionServer宕机等问题;使用hbase hbck命令检查表的一致性,修复损坏的Region。Apache JMeter或HBase Performance Evaluation Tool(hbase org.apache.hadoop.hbase.PerformanceEvaluation)模拟高并发场景,评估优化效果,根据测试结果调整参数。