以下是一个CentOS HBase性能调优实战案例:
采用SSD存储,提升读写速度;增加内存,建议至少32GB,可根据需求调整;使用多核CPU,提高并行处理能力。
调整文件系统预读缓存,如sudo blockdev --setra 32768 /dev/sda
;关闭交换分区,vm.swappiness
设为0;增加文件描述符限制,ulimit -n 65535
。
hbase.regionserver.global.memstore.upperLimit
可适当调大,如设为0.6,但不要超过可用内存;hbase.regionserver.handler.count
设为100 - 150,提高处理请求能力。hbase.regionserver.wal.codec
使用Snappy或LZ4;hbase.hstore.blockingStoreFiles
设为20 - 30,减少Flush次数。hfile.block.cache.size
设为堆内存的40% - 60%;hbase.client.scanner.caching
设为500 - 1000,增大Scan缓存。设计合理的RowKey,避免热点,可使用散列或反转技术;合理设置ColumnFamily数量,一般2 - 3个为宜;对数据进行预分区,如create 'table', SPLITS=>['a','m','z']
。
增加RegionServer节点,分担负载;使用HBase Balancer定期平衡数据分布。