`
kabike
  • 浏览: 609618 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

hbase中的BloomFilter起作用的场景

 
阅读更多
hbase中有BloomFilter的功能,可以在有些情况下过滤掉不需要的hfile,节省IO.但是BloomFilter在什么情况下起作用呢?根据hbase文档,只有get操作才使用到BloomFilter

引用
In terms of HBase, Bloom filters provide a lightweight in-memory structure to reduce the number of disk reads for a given Get operation (Bloom filters do not work with Scans) to only the StoreFiles likely to contain the desired Row. The potential performance gain increases with the number of parallel reads.


从代码上来看
StoreFileScanner的shouldUseScanner方法中,测试这个storefile是否应该被读取

 public boolean shouldUseScanner(Scan scan, SortedSet<byte[]> columns, long oldestUnexpiredTS) {
    return reader.passesTimerangeFilter(scan, oldestUnexpiredTS)
        && reader.passesKeyRangeFilter(scan) && reader.passesBloomFilter(scan, columns);
  }

  passesBloomFilter方法中,一开始就pass了get以外的操作
  if (!scan.isGetScan()) {
        return true;
      }


  所以passesBloomFilter只对get起作用,scan是不起作用的

[url] http://www.quora.com/How-are-bloom-filters-used-in-HBase[/url]
里提到如果集中的批量的对一个row进行put,那么这个row分布在少量的Hfile中,如果均匀的在不同column上进行put,就可能导致一个row的不同keyvalue分布在所有Hfile中,那么row 级别的bloom filter就不起作用了.
 
0
1
分享到:
评论

相关推荐

    HBase官方文档中文版-HBase手册中文版

    HBase是一种分布式、基于列族的NoSQL数据库,由Apache软件基金会开发并维护,是Hadoop生态系统中的重要组件。这份“HBase官方文档中文版”提供了全面深入的HBase知识,帮助用户理解和掌握如何在大数据场景下有效地...

    hbase-2.4.17-bin 安装包

    4. Bloom Filter:使用Bloom Filter可以减少不必要的磁盘I/O,提高查询性能。 5. Indexing:虽然HBase本身不支持索引,但可以通过第三方库如 phoenix 或 hbase-indexer 实现索引功能。 六、监控与维护 1. 使用...

    HBase多表关联查找资料

    * bloomfilter:根据应用需求,判断是否需要精确到 rowkey 或 column, bloomfilter 可以对 region 下的 hfile 进行查询优化。 2. rowkey 设计 rowkey 是 HBase 的 key-value 存储中的 key,通常使用用户要查询的...

    hbase性能优化

    例如,启用bloomfilter过滤器,bloomfilter可以在查询时过滤掉不存在的行,这将显著提高查询性能;增加HBase堆内存,根据业务需求调整hbase-env.sh中的HBASE_HEAPSIZE设置;增加RPC调用数量,通过修改hbase-site.xml...

    HBase实战实例

    2. Bloom Filter:利用Bloom Filter减少不必要的磁盘I/O,提高查询效率。 3. Compaction策略:适时进行Compaction,平衡存储空间和读取速度。 六、挑战与解决方案 1. 数据一致性:在高并发场景下,如何保证数据的...

    hbase 学习 hbase原理 hbase资料

    - ** Bloom Filter**:减少不必要的磁盘I/O,提高查询效率。 - **BlockCache和MemStore**:缓存机制,提升读取性能。 - **Compaction**:定期合并Region中的文件,减少数据文件的数量,优化读写性能。 5. **...

    hbase-0.94.1.tar.gz

    - ** Bloom Filter**:利用Bloom Filter减少不必要的磁盘I/O,提升查询效率。 总之,HBase-0.94.1作为一个早期版本,展示了HBase在大数据实时处理中的强大能力。随着技术的发展,HBase已经迭代到更高的版本,但其...

    HBase在淘宝的应用和优化

    - **0.90.x版本**:2011年1月发布的0.90.0版本成为HBase应用的一个重要里程碑,该版本加入了众多新特性,如Bloom Filter等,显著提升了性能。 - **ZooKeeper集成**:0.20.0版本引入了ZooKeeper来管理BackupMaster...

    HBase权威指南中文版+官方文档

    - **Bloom Filter**:介绍如何使用Bloom Filter来提高查询效率。 #### 三、HBase升级指南 - **从0.20.x或0.89.x升级到0.90.x**:列出具体的步骤与注意事项。 - **从0.90.x到0.92.x**:提供升级路径与建议。 ####...

    hbase 表设计

    HBase表设计的最后一个重要概念是布隆过滤器(Bloom Filter)。布隆过滤器是一种空间效率高的概率数据结构,用于判断一个元素是否在一个集合中。在HBase中使用布隆过滤器可以减少文件的打开次数,从而减少磁盘I/O。...

    Hbase项目实例相关资料

    在本实例中,"测试数据集.xlsx"可能是用于模拟实际业务场景的数据,而"hbase_chatpro.zip"可能包含了一款基于HBase的聊天记录存储与分析系统。这样的系统通常需要处理大量的实时聊天数据,HBase的高性能和低延迟特性...

    HBase性能优化方法总结

    2. **布隆过滤器**:在不确定数据是否存在时,使用Bloom Filter避免无效的磁盘访问。 3. **Scan优化**:限制返回结果的数量,使用StartRow和StopRow控制扫描范围,避免全表扫描。 五、运维优化 1. **监控与调优**:...

    HBASE性能调优方法1

    Rowkey设计应考虑到查询模式和数据访问频率,将常一起读取的数据放在一起,并将热点数据设计在Rowkey的前面,以利用HBase的Bloom Filter和Memstore缓存提高查询效率。 综上所述,HBase性能调优涉及多个层面,需要...

    hbase0.97官方中文文档

    - Bloom Filter:用于减少不必要的磁盘I/O,提高查询效率。 - Compaction:定期合并HFile,减少文件数量,提高读性能。 6. **监控与维护** - 日志分析:监控HLog和系统日志,排查问题。 - 性能监控:利用HBase...

    hbase-1.2.6-bin+src.zip

    4. Bloom Filter:用于优化Get和Scan操作,通过预计算哈希避免不必要的磁盘I/O。 六、HBase实战应用 HBase广泛应用于日志分析、物联网(IoT)数据存储、实时监控、用户行为分析等领域。例如,Facebook使用HBase存储...

    hbase的学习

    - 考虑使用缓存(如 Bloom Filter 和 MemStore)来提升性能。 总结来说,HBase 是一个强大的分布式数据库,特别适合处理大规模数据的实时查询。理解其核心概念如 Row Key、列族、时间戳以及集群架构,是有效利用 ...

    《HBASE系统运维实践》淘宝资深数据库工程师许飞飞

    HBase的数据模型和组件在运维和使用过程中起着至关重要的作用。例如,Region是HBase数据分布的基础单元,每个Region包含了表的部分行数据,并且分布在不同的RegionServer上。而ColumnFamily(列簇)则是HBase中数据...

    Hbase 0.94 api

    - ** Bloom Filter**:减少不必要的磁盘 I/O,提高查询效率。 - **MemStore**:内存缓存,提高写入速度。 7. **监控与管理** - **HBase Master**:负责表的管理和 RegionServer 监控。 - **ZooKeeper**:用于元...

    HBase.The.Definitive.Guide

    书中介绍了Get、Put、Scan等基本操作,以及如何优化查询性能,例如使用过滤器(Filter)和布隆过滤器(Bloom Filter)。此外,还涉及到了HBase的分布式特性,如Region划分和RegionServer的角色,以及数据的分裂和...

Global site tag (gtag.js) - Google Analytics