HBase是Hadoop生态系统中的一个组件,是一个分布式、面向列的开源数据库,可以支持数百万列、超过10亿行的数据存储,因此,对HBase性能提出了一定的要求,那么如何进行HBase性能优化呢?

HBase的拥有完整的支撑系统,包括底层硬件以及把硬件和操作系统、JVM、HDFS连接起来的网络之间的所有部件,这些都会对HBase性能和状态产生影响;除此之外,HBase的交互方式也会对HBase性能产生影响。

一、HBase支撑系统优化

1. 硬件选择

需根据业务情况和集群规模大小选择合适的硬件。

2. 网络配置

由于HBase分布式系统受网络的限制,建议在节点和机架顶置交换机之间采用10Gb以太网交换机,不要满额配置地使用网络,否则在高负载时,会影响HBase应用系统的性能。

3. 操作系统

操作系统的选择应考虑是否支持HBase,通常情况下选择Linux操作系统。

4. 本地文件系统

本地Linux文件系统在HBase集群体系中起到了重要作用,并严重影响了HBase的性能,建议使用EXT3和XFS作为本地文件系统。

二、HBase业务访问优化

根据业务访问特点,Hbase的工作负载大致分为四种:

1. 随机读密集型

对于随机读密集型工作负载,高效利用缓存和更好地索引会给HBase系统带来更高的性能

2. 顺序读密集型

对于顺序读密集型工作负载,可以采用不使用缓存的方式减少硬盘访问次数来提高性能。

3. 写密集型

对于写密集型提高性能需尽量减少刷写、合并和拆分的次数,以减少IO压力,提高系统性能。

除了以上方法可以提高HBase性能之外,还可以采用以下方法:

1. JVM垃圾回收优化;

2. 本地memstore分配缓存优化;

3. Region拆分优化;

4. Region合并优化;

5. Region预先加载优化;

6. 负载均衡优化;

7. 启用压缩,推荐snappy;

8. 进行预分区,从而避免自动split,提高hbase响应速度;

9. 避免出现region热点现象,启动按照table级别进行balance。

以上是对HBase性能优化方法的概要总结,有HBase性能优化需求的,可以在此基础上延伸学习,会有一定收获的!



https://blog.51cto.com/12306609/2105856