`
085567
  • 浏览: 217363 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

提升hbase性能的几个地方(转载)

阅读更多
1、使用bloomfilter和mapfile_index_interval


Bloomfilter(开启/未开启=1/0)  mapfile_index_interval  Exists(0-10000)/ms  Get(10001 - 20000)/ms 
0  128  22460  23715 
0  0  11897  11416 
0  64  13692  14034 
1  128  3275  3686 
1  64  2961  3010 
1  0  3339  3498 





测试环境为:单机,规模为10万条数据。随机在10000条数据中有99条存在的情况下。 



结论:开启bloomfilter比没开启要快3、4倍。而适当的减少mapfile_index_interval可以提升性能 











































注意:在1.9.3版本的hbase中,bloomfilter是不支持的,存在一个bug,可以通过如下的修改加以改正:
    (1)、在方法org.apache.hadoop.hbase.regionserver.HStore.createReaders()中,找到如下行
    BloomFilterMapFile.Reader reader = file.getReader(fs, false, false);
    将其改成
    BloomFilterMapFile.Reader reader = file.getReader(fs, this.family.isBloomfilter(), false);
    (2)、在方法org.apache.hadoop.hbase.HColumnDescriptor.toString()中,找到如下的代码行
      if (key != null && key.toUpperCase().equals(BLOOMFILTER)) {
        // Don't emit bloomfilter.  Its not working.
        continue;
      }
    将其注释掉

2、hbase对于内存有特别的嗜好,在硬件允许的情况下配足够多的内存给它。
    通过修改hbase-env.sh中的
    export HBASE_HEAPSIZE=3000 #这里默认为1000m

3、修改java虚拟机属性
    (1)、在环境允许的情况下换64位的虚拟机
    (2)、替换掉默认的垃圾回收器,因为默认的垃圾回收器在多线程环境下会有更多的wait等待
    export HBASE_OPTS="-server -XX:NewSize=6m -XX:MaxNewSize=6m -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode"

4、增大RPC数量
    通过修改hbase-site.xml中的   
    hbase.regionserver.handler.count属性,可以适当的放大。默认值为10有点小

5、做程序开发是注意的地方
    (1)、需要判断所求的数据行是否存在时,尽量不要用HTable.exists(final byte [] row) 而用HTable.exists(final byte [] row, final byte[] column)等带列族的方法替代。
    (2)、不要使用HTable.get(final byte [] row, final byte [] column) == null来判断所求的数据存在,而是用HTable.exists(final byte [] row, final byte[] column)替代
    (3)、HTable.close()方法少用.因为我遇到过一些很令人费解的错误

6、记住 HBase是基于列模式的存储,如果一个列族能搞定就不要把它分开成两个,关系数据库的那套在这里很不实用.分成多个列来存储会浪费更多的空间,除非你认为现在的硬盘和白菜一个价。

7、如果数据量没有达到TB级别或者没有上亿条记录,很难发挥HBase的优势,建议换关系数据库或别的存储技术。

转自:http://www.cnblogs.com/chenjingjing/archive/2010/01/26/1656895.html

分享到:
评论

相关推荐

    HBase性能深度分析

    同时,compaction机制在文件数量超出“hbase.hstore.compactionThreshold”阈值时(默认3)启动,合并多个小文件,减少文件碎片,提升读写性能。 #### 结论与启示 通过对HBase数据插入性能的深度分析与实验验证,...

    HBase性能优化方法总结

    本文将深入探讨HBase性能优化的各种策略,旨在帮助你提升数据操作的效率。 一、硬件优化 1. **磁盘选择**:HBase对I/O性能要求较高,因此推荐使用SSD硬盘,以减少读写延迟。 2. **内存配置**:合理分配HBase的堆...

    hbase性能测试.docx

    以下是对文档中提到的几个重要性能指标的详细解读: 1. **顺序写入(Sequential Write)**: - **FILE: Number of bytes read**:334,692,599 字节被读取,这通常表示测试前的预处理或初始化操作。 - **FILE: ...

    某大数据公司内部Hbase性能测试详细设计文档及用例

    "HBase性能测试详细设计文档及用例" 本文档旨在详细介绍HBase性能测试的设计文档和实践经验,涵盖了HBase性能测试需要注意的一些参数设置和测试用例。下面是从该文档中提炼的相关知识点: 1.1 Pre-Creating ...

    hbase性能调优手册

    本文主要介绍HBase性能调优的几种常用方法,重点在于理解性能优化背后的核心概念及其应用。 ### Rowkey设计 Rowkey是HBase中每行数据的唯一标识,它的设计对于性能有着至关重要的影响。一个良好的Rowkey设计应当...

    HBase写性能优化策略

    在这个过程中,提升写入性能主要可以从WAL写入机制、批量操作、Region分布、请求均衡性以及KeyValue大小这几个关键点进行考虑。 在WAL写入机制方面,首先要考虑是否需要开启WAL同步写入。通常WAL机制默认是开启的,...

    hbase性能优化

    真的是实战经验才能得出来的结果,如果你想深入了解hbase的性能,这个真的对你会有很大的帮助

    Hadoop2.7.1+Hbase1.2.1集群环境搭建(7)hbase 性能优化

    性能优化是提升HBase集群效率的关键,主要涉及以下几个方面: 1. **硬件优化**:增加内存、使用SSD硬盘、提高网络带宽,这些都可以显著提升HBase的性能。 2. **表设计**:合理设计RowKey,避免热点问题;预分区表...

    HBase性能监控及最佳实践.pptx

    对于使用固态硬盘(SSD)的情况,WAL写入SSD(HBASE-12848)能进一步提升性能,特别是启用MultiWAL后,性能提升可达40%以上。HBase还支持CF级别的Storage Policy配置,如创建表时指定STORAGE_POLICY为ALL_SSD,或...

    HBase的性能优化

    "HBase性能优化" HBase是一种高性能的NoSQL数据库,广泛应用于大数据存储和处理领域。然而,HBase的性能优化是非常重要的,特别是在大规模数据集群环境中。以下是HBase性能优化的相关知识点: 启用LZO压缩 HBase...

    hadoop hbase性能报告(英文)

    3. 编写多个HBase程序,在多种条件下测试HBase的性能,这些条件是官方性能评估测试未涉及的。 #### 安装与初步挑战 安装Hadoop的过程相对直接,但在运行内置的性能评估测试时遇到了问题。最初的问题是由于配置错误...

    Hbase性能测试详细设计文档及用例q

    默认情况下,在创建HBase表的时候会自动创建一个region分区,当导入数据的时候,所有的HBase客户端都向这一个region写数据,直到这个region足够大了才进行切分。 一种可以加快批量写入速度的方法是通过预先创建一些...

    HbaseTemplate 操作hbase

    在IT行业中,尤其是在大数据处理领域,HBase是一个广泛使用的分布式、高性能、列式存储的NoSQL数据库。HBase是建立在Hadoop文件系统(HDFS)之上,为处理大规模数据提供了一个高效的数据存储解决方案。而Spring Data...

    HBase性能优化指南

    - **参数调优**: HBase提供了多个参数用于调整服务器行为以获得更好的性能,例如调整MemStore大小,刷新间隔,以及压缩算法等。 - **预分割表**: 通过预先分割表,减少Region的分裂次数,可以改善写入性能。 - **...

    hbase性能优化.pdf

    除此之外,还有其他几个关键的HBase性能优化点: 3. 表设计中的Family和Qualifier设置: 有效的表设计是优化性能的关键。应合理规划列族(Family)数量,每个列族内的数据应具有相似的访问模式和生命周期。...

    Hbase性能优化百科全书(csdn)————程序.pdf

    在HBase性能优化的过程中,表设计和...综上所述,HBase的性能优化是一个涉及表设计、RowKey策略、内存管理、读写优化等多个层面的综合过程,需要根据业务特性和硬件资源灵活调整,以实现最佳的数据存储和处理性能。

    HBASE性能调优方法1

    本文主要从几个关键方面介绍了HBase的性能优化策略,包括自动刷新、写缓冲区、WAL日志、数据压缩、批量操作、多线程并发以及缓存策略等。 1. 自动刷新(Auto Flash): 通过调用`HTable.setAutoFlushTo(false)`,可以...

Global site tag (gtag.js) - Google Analytics