Debian系统上HBase资源分配策略
hbase.regionserver.handler.count(默认30)调整每个RegionServer的线程数,提升并发处理能力。HBASE_HEAPSIZE)与系统预留内存。通常Master节点分配8-16GB(如-Xms8g -Xmx8g),RegionServer节点分配16-32GB(如-Xms16g -Xmx16g)。需开启MSLAB功能(hbase.hregion.memstore.mslab.enabled=true)减少内存碎片,避免Full GC频繁触发。dfs.blocksize=128M或256M,适配HBase大文件特性),并设置合适的副本数(默认3,可根据集群规模调整)。hbase-site.xml调整关键内存参数:
hfile.block.cache.size:BlockCache(读缓存)占比,默认0.4(40%堆内存),可根据读密集型场景提高至0.5-0.6;hbase.regionserver.global.memstore.upperLimit:MemStore(写缓存)总大小占比,默认0.4,写密集型场景可降低至0.3,避免内存溢出。hbase.hregion.max.filesize设置Region最大大小(默认10GB),过小会导致Region过多(增加元数据开销),过大则导致split延迟。建议根据数据量调整(如100GB数据可设置Region大小为20-50GB)。-XX:+UseG1GC),或CMS(适用于中等堆内存,如-XX:+UseConcMarkSweepGC),并在hbase-env.sh中配置GC参数。vm.swappiness(默认60,建议设置为10-20,减少内存交换)、vm.dirty_background_ratio(默认10,建议设置为5-10,加快脏页回写)、vm.dirty_ratio(默认20,建议设置为15-20,避免频繁回写)。echo never > /sys/kernel/mm/transparent_hugepage/enabled和echo never > /sys/kernel/mm/transparent_hugepage/defrag关闭,并在/etc/rc.local中添加开机自启。Long.MAX_VALUE - timestamp)可使写入均匀分布。info列族包含name、age,metrics列族包含click_count、view_count)。preSplit参数预分区(如hbase shell> create 'user_table', 'info', SPLITS => ['1000', '2000', '3000']),避免后续数据增长导致的Region分裂和负载不均。hbase.balancer.period默认300秒),通过hbase shell> balancer命令手动触发,确保Region均匀分布在各个RegionServer上。