以下是HBase在CentOS上的内存管理技巧:
vm.swappiness=0
,避免内存不足时频繁使用磁盘交换。hbase-env.sh
设置HBASE_HEAPSIZE
(建议不超过物理内存的80%),并启用G1 GC(-XX:+UseG1GC
)减少Full GC停顿。hfile.block.cache.size
:控制读缓存占比(默认0.4,可根据读写比例调整,读多写少时可增大至0.5-0.7)。hbase.regionserver.global.memstore.size
:控制写缓存占比(默认0.4,高写入场景可设为0.5-0.6)。hbase.bucketcache.ioengine=offheap
,将部分BlockCache移至堆外,减少GC压力。hbase.regionserver.handler.count
(默认30),根据CPU核心数增加线程数(建议设置为CPU核数的2-3倍)。hbase.client.write.buffer
)和批量读取,减少RPC调用次数。hbase.regionserver.compression.type=snappy
),降低存储和传输开销。hbase hbck
工具修复不一致元数据。参考来源:[1,2,3,4,5,6,7,8,9,10,11]