当前位置: 代码迷 >> 综合 >> hbase重要调优(GC策略,flush,compact,split)
  详细解决方案

hbase重要调优(GC策略,flush,compact,split)

热度:46   发布时间:2023-12-04 04:25:24.0

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

 

  相关解决方案