以下是CentOS下HBase的配置優化建議,涵蓋硬件、系統、參數及部署等方面:
vm.swappiness=0
。sudo blockdev --setra 32768 /dev/sda
。ulimit -n 65535
。HBASE_REGIONSERVER_OPTS="-Xms32g -Xmx32g"
,并開啟G1垃圾回收器(-XX:+UseG1GC
)。hbase.regionserver.global.memstore.upperLimit=0.4
(默認40%堆內存),hbase.hregion.memstore.flush.size=128m
。hfile.block.cache.size=0.4
(讀多寫少場景可設為0.6)。hbase.hregion.bloom.block.type=ROW
,減少無效磁盤掃描。hbase.client.autoFlush=false
,增大寫緩沖區:hbase.client.write.buffer=2097152
(2MB)。Put
批量提交數據,減少RPC調用。hbase.hregion.compress.algo=SNAPPY
,降低存儲和傳輸開銷。MD5(原始Key)
)。hbase shell
提前創建Region,避免動態分裂導致的性能波動。hbase hbck -fixMeta
和hbase hbck -fixHdfsHoles
修復元數據不一致,確保Region均勻分布。hbase-regionserver.log
,關注Full GC、慢查詢等問題。-XX:MaxDirectMemorySize
控制堆外內存,避免OOM。注意:優化需結合業務場景測試,優先在測試環境驗證配置效果,避免直接在生產環境調整。
參考來源: