HBase性能优化策略

一、与HBase性能有关的因素

   1、导致HBase性能下降的因素
         1)Jvm内存分配与GC回收策略(每个Java程序都会涉及到这一点)
         2)与HBase运行机制相关的部分配置不合理
         3)表结构设计及用户使用方式不合理

   2、HBase数据存储过程
          1)compact(合并):HBase写入时会先写入到memstore,当memstore达到一定的大小会flush到磁盘保存成HFile,
                当HFile小文件太多会执行compact操作进行合并
                 a、说明:随着我们不停的写入数据,磁盘上的HFile就会越来越多,对于HBase来说当HStore只有一个HFile文件
                                查询效率才是最大的,因为HFile小文件太多的查询时的寻址时间就会越长,因此HBase就会通过合并已
                                有的HFile来减少读取数据的磁盘寻址时间,从而提高读取的速度,这个合并的过程叫做compact,但是
                                在执行compact的期间,就是阻塞数据的写入和读取,所以何时去执行compact是一个相当复杂的决策,
                                这也就是HBase的一个调优点,compact分为两种:
                                --minor compaction:选取一些小的、相邻的StoreFile将他们合并成一个更大的StoreFile
                                --major compaction:将所有的StoreFile合并成一个StoreFile,清理无意义的数据:比如被删除的数据、
                                                                  TTL过期数据、版本号超过设定版本号的数据
                b、什么时候会执行compact
                      --MemStore被flush到磁盘
                      --用户执行shell命令compact、major_compact或者调用了相应的API
                      --HBase后台线程周期性触发检查

          2)split(分割):当Region的大小达到某一阀值之后,会执行split操作
                --split:当一个region达到一定大小就会自动split成两个region

二、HBase性能优化策略一:服务端优化策略

    1、Jvm设置与GC设置
    2、hbase-site.xml部分属性配置

在这里插入图片描述
在这里插入图片描述

三、HBase性能优化策略二:常用优化策略(以实际需求为主)

    1、预先分区优化
              创建HBase表的时候会自动创建一个Region分区与其对应,但当一个Region过大时就会触发split操作,
              所以在创建HBase表的时候预先创建一些空的Regions,这样就避免了split操作   
    2、RowKey优化
           1)利用HBase默认排序特点,将一起访问的数据放到一起
           2)防止热点问题,避免使用时序或者单调的递增递减等
    3、Column优化
           1)列族的名称和列的描述命名尽量简短
           2)同一张表中ColumnFamily的数量不要超过3个
    4、Schema优化
           1)宽表:一种'列多行少'的表设计(事务性好)
           2)高表:一种'列少行多'的表设计(查询效率好)

四、HBase性能优化策略三:HBase读/写性能优化

   1、HBase写优化策略
            1)同步批量提交 or  异步批量提交
            2)WAL优化,是否必须,持久化等级

   2、HBase读优化策略
           1)客户端:Scan缓存设置,批量获取
           2)服务端:BlockCache配置是否合理,HFile是否过多
           3)表结构设计问题
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值