目前HBase已经运用于淘宝主搜索的全量和增量的数据存储,有效的减低的数据库的压力,增强了业务扩展的能力。Dump系统的特点是要求在短时间内处理大量数据,对延时要求高。在实施这个项目过程中,我们积累了一些优化的实践,抛砖引玉,供大家参考。
环境:Hadoop CDH3U4 + HBase 0.92.1
1、 尽可能用LZO
数据使用LZO,不仅可以节省存储空间尤其是可以提高传输的效率,因为数据是在regionserver端作解压的。通过测试,可以明显提高HBASE从HDFS的读的性能。尽量不用GZ的方式,GZ的方式在bulkload时有线程安全问题。
2、 根据场景调整Block size
由于使用我们非常关注随机读的性能,一条记录的长度较小,通过设置blocksize=8k,可以提高随机读的性能。
3、 在系统空闲的时候,启动major compaction
在实际中,我们发现随着region不停的flush,hfile的增多会影响scan的性能,为了能控制影响,我们设置了hbase.hregion.majorcompaction为一个比较大的时间,通过另外的定时脚本在空闲的时候集中做各表的major compaction。这样可以保证scan的性能是平稳的。
4、 调整balance策略
我们采用了表级别的balance,但是上线后依旧发现有时scan,会抛timeout的异常。通过hmaster的日志,发现当hbase的表多并且当有regionserver挂掉的时候,表级别balance的策略会导致大面积的region移动。后来通过增加阈值控制,每次balance的时候,每张表的region移动的数量不超过整张表region数量的5%。
5、 关注HDFS的问题
当有regionserver挂掉后,有时split log会很慢,会超时导致master不停的重新resubmit split task,最终导致某些scan任务抛timeout异常。原因是datanode的连接数太多,具体原因是https://issues.apache.org/jira/browse/HDFS-3359 通过升级hdfs到HADOOP CDH3U4之后,问题解决。
6、 注重rowkey设计
使用hash值+具体的key,并且设置一个巨大的MAX_FILESIZE。固定每个region的范围,防止做split,防止split带来的隐患。
7、 尽可能的用batch操作
通过使用batch的方式,能提高近10倍的性能,使原本单条记录的随机读从20ms左右降至2ms左右,因为batch的内部是按regionserver来发送数据的,所以每次batch的List<Row>的大小,应设置成regionserver的若干倍。
8、 如果可以的话,减少数据的versions
由于我们业务只需要一个版本,设置version=1,可以有效的控制hfile的大小,从而控制scan的性能。
相关推荐
本文主要介绍HBase性能调优的几种常用方法,重点在于理解性能优化背后的核心概念及其应用。 ### Rowkey设计 Rowkey是HBase中每行数据的唯一标识,它的设计对于性能有着至关重要的影响。一个良好的Rowkey设计应当...
HBase性能调优.pdf HBase是一个开源的、分布式的、面向列的存储系统,广泛应用于大数据存储和处理领域。然而,HBase的性能调优是一件非常复杂和挑战性的任务,这需要深入了解HBase的架构和机理,以及相关的配置项和...
HBase – Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。与FUJITSU Cliq等商用大数据产品不同,HBase是Google Bigtable...
在HBase这样的分布式数据库系统中,性能调优是至关重要的,因为这直接影响到系统的响应速度和整体效率。本文主要从几个关键方面介绍了HBase的性能优化策略,包括自动刷新、写缓冲区、WAL日志、数据压缩、批量操作、...
- 当Solr构建在HBase之上时,还需要考虑HBase的性能调优策略,以确保整个系统的高效运行。 ##### 12.8.4 Solr over HDFS调优建议 - 类似地,当Solr使用HDFS作为底层存储时,也需要注意HDFS的性能调优,以保证数据...
### HBase性能调优策略详解 #### 一、服务端参数配置优化 针对HBase的服务端性能调优,可以通过合理调整一系列关键参数来提升系统的稳定性和效率。下面将详细介绍几个核心参数及其调优方法。 ##### 1. `hbase....
HBase是Apache软件基金会的Hadoop项目中的一个子项目,它是一个开源的非关系型分布式数据库(NoSQL),是...ZooKeeper作为协调服务,在HBase集群中扮演着关键角色,其性能直接影响到整个HBase集群的性能和稳定性。
在HBase这样的分布式大数据存储系统中,性能调优是确保高效稳定运行的关键。本文将围绕HBase中的几个关键配置项展开讨论,包括Zookeeper的session超时时间、RegionServer的请求处理线程数、Region的最大文件大小以及...
在HBase性能调优的过程中,有几个关键的配置参数和策略值得深入探讨。首先,我们要理解HBase的基本工作原理,它是基于Hadoop构建的分布式数据库,采用列式存储,支持大规模数据存储和高并发读写。在默认情况下,...
在大数据存储领域,HBase作为一个分布式列式数据库,被广泛应用于处理海量结构化数据。...这份资料中的“HBase配置项说明及调优建议.xlsx”应该包含了详细的参数解释和实践案例,是学习和优化HBase不可或缺的参考资源。
大数据功能调优之HBase的RowKey设计是指在HBase中对RowKey的设计,以提高HBase的性能和可扩展性。RowKey是HBase中的一种二进制码流,可以是任意字符串,最大长度为64kb,但实际应用中一般为10-100bytes,以byte[]...
淘宝在使用HBase过程中也针对自身业务特点进行了多项技术优化,例如: - **RowKey设计**:合理设计RowKey,使得数据能够均匀分布,避免热点问题。 - **Region切分策略**:根据业务需求调整Region切分策略,优化负载...
《HBase在淘宝的应用与优化》一文详细阐述了阿里巴巴集团旗下淘宝网如何利用Apache HBase这一分布式数据库系统解决大规模数据处理的问题。以下是对该文关键知识点的深入解析: ### 使用HBase的动机 淘宝选择HBase...
基于Hadoop的电商大数据平台性能调优主要涉及两大方面:数据重新组织和平台参数调优。针对电商大数据平台的特点,通过调整存储数据格式、优化数据表的分区与分桶策略,以及调整涉及业务主要组件的关键参数,可以显著...
HBase性能调优方法。因官方BookPerformanceTuning部分章节没有按配置项进行索引,不能达到快速查阅的效果。所以我以配置项驱动,重新整理了原文,并补充一些自己的理解,如有错误,欢迎指正。 因官方...