CentOS环境下HBase资源调优指南
LRU + MemStore < 80% * JVM_HEAP,避免启动失败)。具体参数:hbase.regionserver.blockcache.size(读缓存)、hbase.regionserver.global.memstore.upperLimit(写缓存上限)。hbase.hstore.compaction.ratio减少不必要的合并),并选择合适的RAID级别(如RAID 10兼顾性能与可靠性)。sysctl -w net.core.rmem_max=16777216、sysctl -w net.core.wmem_max=16777216(增大TCP缓冲区)。sysctl -w vm.swappiness=0;ulimit -n 65535;blockdev --setra 32768 /dev/sda(/dev/sda为数据盘)。tune2fs -O ^compression /dev/sdxn),避免影响HBase性能。-Xms8G -Xmx8G),避免过大导致GC停顿;hbase.offheapcache.percentage(如设置为30%),减少堆内存压力。SPLIT参数预先划分Region(如create 'table_name', 'cf', SPLITS => ['1000', '2000', '3000']),避免后期数据倾斜;TieredCompactionPolicy适合读多写少,DateTieredCompactionPolicy适合时间序列数据),减少不必要的合并操作。hbase.hregion.memstore.flush.size(如设置为2G),减少flush频率;hbase.regionserver.asyncwal.enabled=true,提升写吞吐量;hbase.regionserver.wal.codec=org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec,减少WAL体积。hbase.scan.cacheblock=true、hbase.scan.cachesize=1000(默认100),减少RPC调用;hbase.hregion.bloom.block.size=256m,过滤无效数据块,降低磁盘IO。MD5(user_id)+user_id),确保数据均匀分布;RowKey长度建议控制在10-100字节,避免过长。cf_user存放用户基本信息,cf_order存放订单信息)。SPLIT参数划分Region(如按时间范围、地域划分),避免后期热点问题。BufferedMutator进行批量Put/Delete(减少RPC调用),设置合适的缓冲区大小(如hbase.client.write.buffer=10MB);Scan.setCaching()(如设置为500),避免全表扫描(尽量指定列族或列,如scan.addColumn(Bytes.toBytes("cf"), Bytes.toBytes("name")));Connection工厂)复用连接,减少连接创建开销。hbase-regionserver.log(识别慢查询、GC问题),使用ELK等工具分析日志;Apache JMeter或YCSB模拟业务场景,验证优化效果(如调整BlockCache大小后,测试读延迟变化),根据测试结果进一步调整参数。