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就不起作用了.
分享到:
相关推荐
讲师:陈杨——快手大数据高级研发工程师 ...内容概要:(1)讲解hbase coprocessor的原理以及使用场景,(2) coprocessor整个流程实战,包括开发,加载,运行以及管理(3)结合1,2分析coprocessor在rsgroup中的具体使用
根据个人的经验,总结出来的HBASE基本概念以及使用场景,原本用于内部分享
2. 请简述HBase中数据写入最后导致Region分裂的全过程 3. 如果设计一个笔记的表,表中要求有笔记的属性和笔记的内容,怎么做 4. HBase部署时如何指定多个zookeeper 5. HBase shell是基于哪种JVM运行的语言实现的 6. ...
2.9. Bloom Filter 3. 升级 3.1. 从HBase 0.20.x or 0.89.x 升级到 HBase 0.90.x 3.2. 从 0.90.x 到 0.92.x 4. The HBase Shell 4.1. 使用脚本 4.2. Shell 技巧 5. 数据模型 5.1. 概念视图 5.2. 物理视图 5.3. 表 ...
藏经阁-Hbase 在滴滴出行的应用场景及最佳实践.pdf
hbase中文官方文档,非常不错,值得推荐
java操作Hbase之从Hbase中读取数据写入hdfs中源码,附带全部所需jar包,欢迎下载学习。
Hbase中文文档。想0分分享,结果不能设置0分了;坑爹了。
HBase 中文参考指南
HBase 0.97 中文文档 HBase 0.97 中文文档 HBase 0.97 中文文档
java 利用 sping-data-hadoop HbaseTemplate 操作hbase find get execute 等方法 可以直接运行
企业中应用HBase
Hbase笔记 —— 利用JavaAPI的方式操作Hbase数据库(往hbase的表中批量插入数据)
搭建pinpoint需要的hbase初始化脚本hbase-create.hbase
HBase中文教程
这是 Apache HBase的官方文档, Hbase是一个分布式,版本化(versioned),构建在 Apache Hadoop和 Apache ZooKeeper上的列数据库.专业人士翻译
HBase不能取代RDBMS,因为二者的应用场景不同。HBase为了解决海量数据的扩展性,支持简单的增加节点来实现线性扩展,从而在集群上管理海量的非结构化或半结构化的稀疏数据。HBase仅能通过主键(row key)或主键的...
HBase