`
cangyingzhijia
  • 浏览: 1746 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

提升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的优势,建议换关系数据库或别的存储技术。

0
0
分享到:
评论

相关推荐

    hbase性能调优手册

    HBase作为一款开源的NoSQL数据库,常用于处理大规模非结构化...正确的前期规划设计,合理的参数配置以及准确的问题定位都是提升HBase性能不可或缺的部分。通过不断地测试和调整,可以确保HBase在实际运行中的高效稳定。

    HBase写性能优化策略

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

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

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

    hbase性能优化.pdf

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

    HBASE性能调优方法1

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

    hbase性能调优[借鉴].pdf

    本文将围绕HBase中的几个关键配置项展开讨论,包括Zookeeper的session超时时间、RegionServer的请求处理线程数、Region的最大文件大小以及内存管理策略,以期提供对HBase性能优化的深入理解。 1. **Zookeeper....

    hbase性能调优

    下面将详细介绍几个核心参数及其调优方法。 ##### 1. `hbase.regionserver.handler.count` - **含义**:该参数决定了RegionServer用于处理RPC请求的线程池中的线程数量。 - **默认值**:10。 - **推荐值**:根据...

    Hadoop 集群(第 12 期副刊)-HBase性能优化.pdf

    通过对Linux系统、JVM以及HBase本身的配置进行合理的调整,可以显著提升HBase的整体性能。需要注意的是,所有优化措施都应该基于实际业务场景的需求来进行,避免盲目跟风而导致适得其反的效果。

    hbase 数据库

    11. **优化策略**:包括合理设置Region大小、预分区表、选择合适的Column Family、启用BlockCache等,以提升HBase的性能。 12. **安全配置**:在生产环境中,可能需要配置HBase与Kerberos进行集成,以实现身份验证...

    hbase-1.3.0.tar.gz

    在HBase 1.3.0中,有以下几个关键特性值得关注: 1. 支持Region Server的动态调整:管理员可以在线添加或删除Region Server,无需停止服务,从而实现更灵活的集群扩展。 2. 增强的Compaction策略:HBase 1.3.0改进...

    hbase-2.0.5-bin.tar.gz

    HBase的特性主要包括以下几个方面: 1. **分布式存储**:HBase将数据分布在多台服务器上,利用Hadoop的HDFS(Hadoop Distributed File System)作为底层存储,实现数据的高可用性和容错性。 2. **列式存储**:与...

    hbase-1.6.0-bin.tar.gz

    在HBase 1.6.0中,有以下几个关键知识点: 1. **性能优化**:HBase 1.6.0引入了对读写性能的进一步优化。例如,它改进了BlockCache的管理,提高了缓存效率;增强了MemStore的压缩算法,降低了存储成本;同时,还...

    ycsb-hbase14-binding-0.17.0

    总之,YCSB-HBase14-Binding 0.17.0是评估和优化HBase性能的重要工具,它通过提供标准化的测试方法,使开发者能够更准确地了解HBase在不同工作负载下的行为,从而推动HBase在大数据领域的广泛应用和发展。...

    Cloudera-HBase最佳实践及优化.zip

    理解何时和如何创建索引对于提升HBase性能至关重要。 7. **性能调优**:包括内存配置、Region大小调整、Compaction策略优化、BlockCache管理等,这些都能显著影响HBase的性能。 8. **容错和高可用性**:HBase通过...

    hbase 示例

    描述中的“twitbase示例”可能包含以下几个关键知识点: 1. **安装与配置**:首先,你需要设置HBase环境,包括下载HBase,配置HBase的环境变量,以及启动HBase集群。对于Twitbase,可能还需要额外的配置步骤,例如...

    hbase-2.2.3-bin.tar.gz

    在HBase 2.2.3中,有几个关键特性值得注意: 1. **Region Server优化**:HBase通过Region Server管理表的数据分区,2.2.3版本对Region Server进行了优化,提高了并发处理能力和数据读写的效率。 2. **Multi-Get与...

    Hbase1.x可视化客户端工具

    在实际使用过程中,应根据具体需求选择合适的客户端工具,并结合官方文档和社区资源,不断学习和掌握其高级特性,以提升HBase的管理和运维效率。对于初学者,可以从简单的命令行操作开始,逐步过渡到使用可视化工具...

    hbase-2.4.11-bin.tar.gz

    7. **性能优化**:HBase提供了多种优化策略,如表分区、布隆过滤器、压缩等,可以根据实际场景调整以提升性能。 8. **安全性**:HBase支持Kerberos认证,可以实现安全的集群环境。同时,可以利用Hadoop的权限管理来...

Global site tag (gtag.js) - Google Analytics