HBase的几种调优(GC策略,flush,compact,split)

Posted 因为专注。所以专业

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HBase的几种调优(GC策略,flush,compact,split)相关的知识,希望对你有一定的参考价值。

HBase的几种调优(GC策略,flush,compact,split)

 

一: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.配置

  <property>
    <name>hbase.hregion.max.filesize</name>
    <value>10737418240</value>
  </property>

 

以上是关于HBase的几种调优(GC策略,flush,compact,split)的主要内容,如果未能解决你的问题,请参考以下文章

Spark几种调优方式

hbase 的数据存储及Region变化(flush compaction spilt)和性能调优

Hbase CMS GC 调优。

HBase – Memstore Flush和flush shell操作 深度解析

HBase 调优 | JDK 从8升级到11,使用 G1 GC,HBase 性能下降近20%。JDK 到底干了什么?

面试题:JVM 配置常用参数和常用 GC 调优策略