一:GC的调优
1.jvm的内存
新生代:存活时间较短,一般存储刚生成的一些对象
老年代:存活时间较长,主要存储在应用程序中生命周期较长的对象
永久代:一般存储meta和class的信息
2.GC策略
Parrallel New Collector,垃圾回收策略
并行标记回收器(Concurrent Mark-Sweep Collector)
3.Parrallel New Collector
速度快,但是数据量一大,容易造成GC停顿,一般应用在新生代
4.Concurrent Mark-Sweep Collector
速度相对来说慢一点,但是对于大数据量来说,避免GC停顿
5.设置(在hbase-env.sh中)
export HBASE_REGIONSERVER_OPTS=”-Xmx8g -Xms8G -Xmn128m -XX:UseParNewGC -XX:UseConcMarkSweepGC - XX:CMSInitiatingOccupancyFraction=70 -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -Xloggc:$HBASE_HOME/logs/gc-${hostname}-hbase.log”
二:flush
1.概述
写的过程:先往WAL写,往memstore写,memstore达到阈值,开始溢写到HDFS
memstore配置:默认达到128M开始溢写,自动flush
<property>
<name>hbase.hregion.memstore.flush.size</name>
<value>134217728</value>
</property>
2.新建表s3
3.添加数据
4.在hdfs上的效果
无
5.flush
6.在hdfs上出现
7.新添加数据
8.在hdfs上将会出现两个storefile
三:compact
1.概述
溢写以后生成许多storefile
minor compaction:最早生成的几个storefile会被合并,这一步不会对标记的删除和过期的数据进行处理,经常发生,数据量较小,占用资源不多
major compaction:默认值是7天执行一次
设置
<property>
<name>hbase.hregion.majorcompaction</name>
<value>604800000</value>
</property>
2.危害
-》消耗大量的资源,对hbase的性能产生影响
-》会导致hbase的应用阻塞
企业中一般关闭自动触发,使用手动触发 major_compact
3.操作
在自动触发之前手动触发。
4.在hdfs上的效果
合并成一个文件
四:split
1.配置
这个是split阈值。
<property>
<name>hbase.hregion.max.filesize</name>
<value>10737418240</value>
</property>