码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2017-08-22 23:13:39      阅读:174      评论:0      收藏:0      [点我收藏+]

标签:新生代   技术分享   log   action   阻塞   垃圾回收   exp   hba   meta   

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

标签:新生代   技术分享   log   action   阻塞   垃圾回收   exp   hba   meta   

原文地址:http://www.cnblogs.com/RHadoop-Hive/p/7413944.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!