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

Hbase优化总结

时间:2019-05-18 00:46:11      阅读:160      评论:0      收藏:0      [点我收藏+]

标签:提高   分区   参数   epg   利用   设置   日志   算法   wal   

1.JVM参数优化:

  1. –Xmn=12G –Xms=24G  -Xmx=24G  根据实际机器情况调整,一般为整个机器内存的一半,同时建议regionServer的堆内存建议不要超过32G ;
  2. -XX:PermSize=512M -XX:MaxPermSize=512M;
  3. -XX:+UseConcMarkSweepGC -XX:+UseParNewGC (建议使用CMS垃圾收集器, 其它JVM参数使用默认比较好)

2.HBase客户端使用优化:

  1. 用表池或创建多个客户端,适当提高HBase客户端写入的并发性;
  2. 尽可能批量写和批量读,减少RPC交互的次数;
  3. 不要读取不必要的列数据, 限定scan的数据范围;
  4. 读取到客户端的结果后,一定要关闭结果集, 即关闭Results和ReultsScanner;
  5. 根据HBase CPU的利用率,合时设置压缩算法,前提是要服务需要安装压缩算法包;
    6.关闭AutoFlush , 设置setAutoToFlush(false) 不建议,有丢数据的风险;

7.关闭WAL Flag,设置setWriteToWAL(false), 不建议,有丢数据的风险;

3. 建表时优化:

1.根据不同的业务,合理地设置好HBase表命名空间;

  1. 创建预分区, 减少region分裂的次数,并且写入的负载也比较 好;
  2. 动态添加分区, 在HBase后面新的稳定版本中会有这个功能,华为、阿里、facebook公司内部二次开发的HBase已经添加了这个功能;

4. 运维时优化:

  1. 业务低峰期时,手动或定进均衡;
  2. 业务 高峰期时,关闭自动负载(不建议使用);

5 .配置参数优化:

    1. 设置StoreFile的大小: 根据业务场景适当增大hbase.hregion.max.filesize减少写入过程中split的次数,同时也减少了Region的数量,新版本默认是10G,老版本默认是512M,新版本建议用默认值;
    2. 设置memstore固定缓冲区块的大小:hbase.hregion.memstore.mslab.chunksize, 默认是2M, 最好是根据一次写入数据大小进行评估,建议用默认值;
    3. 减少Zookeeper超时的发生: zookeeper.session.timeout, 默认是3分钟, 可以修改为一分钟或半分钟, 加快HMaster发现故障的regionServer;
    4. 增加处理线程: hbase.regionserver.handler.cout, 默认值为10, 如果批量写,这个值可以设置小些,如果是单 个读写,这个值可以适当设置大些;
    5. 启用数据压缩: 推荐使用Snappy或者LZO压缩, 前提是需要安装这个压缩算法的jar包,然后再进行配置,重启;
    6. 适当增加块缓存的大小: perf.hfile.block.cache.size 默认为0.2,这个需要查看内存刷写到磁盘的频率,如果不是很频繁,可以适当增加这个值的设置,建议0.2 ~ 0.3之间;
    7. 调整memStore限制: hbase.regionsever.global.memstore.upperLimit 默认为0.4 hbase.regionsever.global.memstore.lowerLimit 默认为0.35, 建议把这两个值设置近些或相等;
    8. 增加阻塞时存储 文件数目: hbase.hstore.blockingStoreFiles 默认值 为7,当一个region的StoreFile的个数超过值的时候,更新就会阻塞, 在高并写的情况 下,设置 为10左右比较 为合理;
    9. 增加阻塞倍率 : hbase.region.memstore.block.multiplier 默认值是2, 当memstore达到multiplier 乘以flush的大小时,写入就会阻塞, 对于写压力比较大,可以增加这个值,一般 为设置为2-4;
    10. 减少最大日志 文件 限制: hbase.regionserver.maxlogs 默认是32, 对于写压力比较大的情况 ,可以减少这个值的设置, 加快后台异步线程的定时清理工作;

 

 

 

 

 

 

 

   

 

Hbase优化总结

标签:提高   分区   参数   epg   利用   设置   日志   算法   wal   

原文地址:https://www.cnblogs.com/aibabel/p/10884189.html

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