HBase写入优化

HBase高并发读写

image.png

rowkey+预分区的合理设计(减少split)

提高region的容量也可以减少split

hbase.hregion.max.filesize

使用批量写入BulkLoad

先将数据写hdfs,然后直接加载为Hbase的HFile文件避免region的split,compact,flush等过程

HBase写入速度过快

  • 加快flush的速度

    hbase.hstore.blockingWaitTime = 90000 ms
    hbase.hstore.flusher.count = 2
    hbase.hstore.blockingStoreFiles = 10
    
  • 加快compact的速度,增加执行compaction的线程数

    hbase.regionserver.thread.compaction.small = 1
    hbase.regionserver.thread.compaction.large = 1
    
  • 限制请求队列的大小,让客户端请求超时

    hbase.ipc.server.max.callqueue.size = 1024 * 1024 * 1024 # 1G
    
  • 减少Rpc的连接数

    Hbase的客户端会数据累积到设置的阈值才会提交,所以提高这个缓冲区的大小。前提是必须禁止AutoFlush

    HTable htable = new HTable(config, tablename);   
    htable.setWriteBufferSize(6 * 1024 * 1024);  
    htable.setAutoFlush(false);    
    
  • 提高RPC Handler数

    <property>  
    <name>hbase.regionserver.handler.count</name>  
    <value>100</value>  
    </property> 
    
  • 配置边写边压

    因为IO也是写入得一个瓶颈

    HColumnDescriptor hcd = new HColumnDescriptor(familyName);   
    hcd.setCompressionType(Algorithm.SNAPPY);  
    
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 版权声明:本文为博主原创文章,未经博主允许不得转载。https://www.jianshu.com/p/84824...
    Moon_魔宽阅读 6,360评论 2 2
  • 本文主要是从HBase应用程序设计与开发的角度,总结几种常用的性能优化方法。 Auto Flash 通过调用HTa...
    digger30阅读 11,343评论 0 13
  • 1、HBase监控指标 1.1、指标收集:http://master_ip:port/jmx;http://reg...
    loukey_j阅读 6,141评论 0 2
  • ​“孤独没有什么不好,使孤独变得不好,是因为你害怕孤独。”——蒋勋 作者丨谢丹儒 图片丨谢丹儒 1. 今年的年过得...
    谢丹儒阅读 1,878评论 0 0
  • 春日,暖阳阳的午后,我在河岸边懒洋洋的步行,看见河里有只大约出生不久的小灰鸭在捕食,就好奇它在水里寻找食物时多久会...
    一思瑶一阅读 2,532评论 0 1