一: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>