关闭

HBase之BloomFilter

标签: HBase
1711人阅读 评论(0) 收藏 举报
分类:

HBase的Get/Scan操作流程


hbase中有BloomFilter的功能,可以在有些情况下过滤掉不需要的hfile,节省IO。

BloomFilter作用

BloomFilter在HBase中的作用?
HBase**利用BloomFilter来提高随机读**(Get)的性能,对于顺序(Scan)而言,设置Bloomfilter是没有作用的(0.92以后,如果设置了bloomfilter为ROWCOL,对于指定了qualiter的Scan有一定的优化)。

BloomFilter在HBase中的开销?
BloomFilter是一个列族(of)级别的配置属性,如果在表中设置了BloomFilter,那么HBase会在生成StoreFile时,包含一份BloomFilter
结构的数据,称其为MetaBlock;MetaBlock与DataBlock(真实的KeyValue数据)一起由LRUBlockCache维护,所以开启BloomFilter会有一定的存储及内存cache开销。

HBase中的Bloomfilter的类型及使用

ROW:根据KeyValue中的row来过滤storefile。
举例:假设有2个storefile文件sf1和sf2,
sf1包含kv1(r1 cf:q1 v)、kv2(r2 cf:q1 v)
sf2包含kv3(r3 cf:q1 v)、kv4(r4 cf:q1 v)

如果设置了CF属性中的bloomfilter为ROW,那么get(r1)时就会过滤sf1,get(r3)就会过滤sf2

ROWCOL:根据KeyValue中的row+qualifier来过滤storefile。
举例:假设有2个storefile文件sf1和sf2,
sf1包含kv1(r1 cf:q1 v)、kv2(r2 cf:q1 v)
sf2包含kv3(r1 cf:q2 v)、kv4(r2 cf:q2 v)

如果设置了CF属性中的bloomfilter为ROW,
无论get(r1,q1)还是get(r1,q2),都会读取sf1+sf2;
而如果设置了CF属性中的bloomfilter为ROWCOL,那么get(r1,q1)就会过滤sf2,get(r1,q2)就会过滤sf1

ROWCOL一定比ROW效果好么?

答案:不一定
a、ROWCOL只对指定列(Qualifier)的随机读(Get)有效,如果应用中的随机读get,只含row,而没有指定读哪个qualifier,那么设置ROWCOL是没有效果的,这种场景就应该使用ROW。
b、如果随机读中指定的列(Qualifier)的数目大于等于2,在0.90版本中ROWCOL是无效的,而在0.92版本以后,HBASE-2794对这一情景作了优化,是有效的(通过KeyValueScanner#seekExactly)
c、如果同一row多个列的数据在应用上是同一时间put的,那么ROW与ROWCOL的效果近似相同,而ROWCOL**只对指定了列**的随机读才会有效,所以设置为ROW更佳。

注意:
ROWCOL与ROW只在名称上有联系,ROWCOL并不是ROW的扩展,不能取代ROW。
region下的storefile数目越多,bloomfilter的效果越好。region下的storefile数目越少,HBase读性能越好。

0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

HBase - BloomFilter(布隆过滤器)

hbase中有BloomFilter的功能,可以在有些情况下过滤掉不需要的hfile,节省IO。 1.ROW:根据KeyValue中的row来过滤storefile。 2.ROWCOL:根据KeyV...
  • lovebyz
  • lovebyz
  • 2016-07-09 16:10
  • 1430

Hbase 布隆过滤器BloomFilter介绍

1、主要功能 提高随机读的性能 2、存储开销 bloom filter的数据存在StoreFile的meta中,一旦写入无法更新,因为StoreFile是不可变的。Bloomfilter是...
  • opensure
  • opensure
  • 2015-06-11 09:47
  • 9527

hbase 学习笔记二----shell

Hbase 是一个分布式的、面向列的开源数据库,其实现是建立在google 的bigTable 理论之上,并基于hadoop HDFS文件系统。     Hbase不同于一般的关系型数据库(RDBMS...
  • zhouleilei
  • zhouleilei
  • 2013-10-12 16:59
  • 18402

Hbase中的BloomFilter(布隆过滤器)

Hbase中的BloomFilter(布隆过滤器)
  • SadOnMyOwn
  • SadOnMyOwn
  • 2017-04-18 09:33
  • 501

Hbase 布隆过滤器BloomFilter介绍

http://blog.csdn.net/opensure/article/details/46453681   1、主要功能 提高随机读的性能 2、存储开销 bloom filte...
  • u013571243
  • u013571243
  • 2016-04-05 10:18
  • 329

分布式环境下改进的BloomFilter过滤技术

  • 2010-09-15 20:37
  • 196KB
  • 下载

自己写的Java抓图程序(用了BloomFilter算法)

  • 2010-07-12 14:13
  • 31KB
  • 下载

BloomFilter源码

  • 2011-04-19 14:59
  • 2KB
  • 下载

使用BloomFilter布隆过滤器解决缓存击穿、垃圾邮件识别、集合判重

Bloom Filter是一个占用空间很小、效率很高的随机数据结构,它由一个bit数组和一组Hash算法构成。可用于判断一个元素是否在一个集合中,查询效率很高(1-N,最优能逼近于1)。 在很多场景...
  • tianyaleixiaowu
  • tianyaleixiaowu
  • 2017-07-07 16:23
  • 1448

BloomFilter——大规模数据处理利器

BloomFilter——大规模数据处理利器     Bloom Filter是由Bloom在1970年提出的一种多哈希函数映射的快速查找算法。通常应用在一些需要快速判断某个元素是否属于集...
  • nankangren123
  • nankangren123
  • 2014-03-14 15:54
  • 292
    个人资料
    • 访问:475169次
    • 积分:7836
    • 等级:
    • 排名:第3113名
    • 原创:269篇
    • 转载:7篇
    • 译文:0篇
    • 评论:57条
    About Me

    姓名:李国冬
    英文名:wintfru
    GitHub: 点击进入
    Email:liguodongiot@gmail.com
    学校:西南石油大学
    学历:本科
    专注:Java、Hadoop、IOT
    爱好:跑步,NBA,旅游,LOL
    博客专栏
    咚呱哂呱
    好记性不如烂笔头。
    文章分类