日期:2014-05-16  浏览次数:20471 次

提升HBase写性能
本文主要介绍软件层面的性能调优。故,在此之前,请检查硬件状况。硬盘推荐SSD,一般SATA即可。网络千兆以上。可以安装Ganglia等工具,检查各节点的各硬件的运作状态:CPU,Memo,网络等等。
?
?
调整参数
入门级的调优可以从调整参数开始。投入小,回报快。
?

1. Write Buffer Size

  • 快速配置

HTable htable = new HTable(config, tablename);
htable.setWriteBufferSize(6 * 1024 * 1024);
htable.setAutoFlush(false);
??
设置buffer的容量,例子中设置了6MB的buffer容量。
* 必须禁止auto flush。
* 6MB是经验值,可以上下微调以适应不同的写场景。
?
  • 原理
HBase Client会在数据累积到设置的阈值后才提交Region Server。这样做的好处在于可以减少RPC连接次数。
?
?
2. RPC Handler
  • 快速配置
修改hbase-site.xml的hbase.regionserver.handler.count配置项:
<property>
<name>hbase.regionserver.handler.count</name>
<value>100</value>
</property>
??
  • 原理
该配置定义了每个Region Server上的RPC Handler的数量。Region Server通过RPC Handler接收外部请求并加以处理。所以提升RPC Handler的数量可以一定程度上提高HBase接收请求的能力。当然,handler数量也不是越大越好,这要取决于节点的硬件情况。
?
?