以下是一個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定期平衡數據分布。