3、内存优化
HBase操作过程中需要大量的内存开销,毕竟Table是可以缓存在内存中的,但是不建议分配非常大的堆内存,因为GC过程持续太久会导致RegionServer处于长期不可用状态,一般16~36G内存就可以了,如果因为框架占用内存过高导致系统内存不足,框架一样会被系统服务拖死。
合理配置JVM内存
1. HBase服务的堆内存设置
一般刚部署的HBase集群,默认配置只给Master和RegionServer分配了1G的内存,RegionServer中的MemStore默认占0.4,即400M左右的空间,而一个MemStore刷写阈值配置默认是128M,也就是说,一个RegionServer再默认配置下也就正常管理3个Region,多了就会产生过多的小文件,同时也会增加发生Full GC的机率。一般建议合理调整Master和RegionServer的内存,如:
export HBASE_MASTER_OPTS="$HBASE_MASTER_OPTS -Xms8g -Xmx8g"
export HBASE_REGIONSERVER_OPTS="$HBASE_REGIONSERVER_OPTS -Xms32g -Xmx32g"
这里也要结合实际集群资源情况进行配置,另外要牢记至