1.Bloomfilter的原理?  
可参考  http://hi.baidu.com/yizhizaitaobi/blog/item/cc1290a0a0cd69974610646f.html

2.Bloomfilter在HBase中的作用?  
HBase利用Bloomfilter来提高随机读(Get)的性能,对于顺序读(Scan)而言,设置Bloomfilter是没有作用的(0.92以后,如果设置了bloomfilter为ROWCOL,对于指定了qualifier的Scan有一定的优化,但不是那种直接过滤文件,排除在查找范围的形式)

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

4.Bloomfilter如何提高随机读(Get)的性能?  
对于某个region的随机读,HBase会遍历读memstore及storefile(按照一定的顺序),将结果合并返回给客户端。如果你设置了bloomfilter,那么在遍历读storefile时,就可以利用bloomfilter,忽略某些storefile。

5.HBase中的Bloomfilter的类型及使用?

a)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)时就会过滤sf2,get(r3)就会过滤sf1

b)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

6.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更佳

7.ROWCOL与ROW只在名称上有联系,ROWCOL并不是ROW的扩展,不能取代ROW

8.region下的storefile数目越多,bloomfilter的效果越好

9.region下的storefile数目越少,HBase读性能越好

HBase中Bloomfilter类型的设置及使用的理解相关推荐

  1. java string设置编码_详解Java中String类型与默认字符编码

    为什么写这个 至于为什么要写这个,主要是一句mmp一定要讲,绕了一上午,晕死 Java程序中的中文乱码问题一直是一个困扰程序员的难题,自己也不例外,早在做项目时就遇到过很多编码方式的坑,当时想填来着, ...

  2. matplotlib: 双Y轴、同一坐标轴中不同类型图、设置坐标轴刻度格式

    pandas的plot函数已经可以满足很多的基本作图需求,但是其有一个比较明显缺点是不能一次性的在同一个坐标轴中画不同类型的图,比如折线图和柱状图,而且也不能设置坐标轴刻度的格式.当然这两个需求在ma ...

  3. 设置Backup-masters Hbase中只有一个HMaster ,hmaster挂掉了,客户端还能连接hbase集群进行数据读写吗

    设置 Backup-masters (候补节点)   为了保证HBase集群的高可靠性,HBase支持多Backup Master 设置.当Active Master挂掉后,Backup Master ...

  4. HBase建表高级属性,hbase应用案例看行键设计,HBase和mapreduce结合,从Hbase中读取数据、分析,写入hdfs,从hdfs中读取数据写入Hbase,协处理器和二级索引

    1. Hbase高级应用 1.1建表高级属性 下面几个shell 命令在hbase操作中可以起到很到的作用,且主要体现在建表的过程中,看下面几个create 属性 1. BLOOMFILTER 默认是 ...

  5. HBase之BloomFilter

    HBase的Get/Scan操作流程   hbase中有BloomFilter的功能,可以在有些情况下过滤掉不需要的hfile,节省IO. BloomFilter作用 BloomFilter在HBas ...

  6. hbase中为何不能向表中插入数据_大数据HBase理论实操面试题

    1.HBase的特点是什么? 1)大:一个表可以有数十亿行,上百万列: 2)无模式:每行都有一个可排序的主键和任意多的列,列可以根据需要动态的增加,同一张表中不同的行可以有截然不同的列: 3)面向列: ...

  7. HBase最佳实践-HBase中的读性能优化策略

    任何系统都会有各种各样的问题,有些是系统本身设计问题,有些却是使用姿势问题.HBase也一样,在真实生产线上大家或多或少都会遇到很多问题,有些是HBase还需要完善的,有些是我们确实对它了解太少.总结 ...

  8. HBase中的时间维度

    原文链接:http://outerthought.org/blog/417-ot.html 原文是Bruno Dumon在一年前写的,现在看了还是有很多启发,因此简单的翻译一下,可能有理解不准确的地方 ...

  9. hbase中为何不能向表中插入数据_Hbase快速入门(超精炼总结)

    基本概念: HBase是列簇式Key-Value存储系统,构建在HDFS之上的.支持随机插入和删除. 总结Hbase的架构核心,就两个字"有序" . 磁盘的读写,随机与顺序,相差3 ...

最新文章

  1. python学习路线-2020年 Python学习路线及学习目标规划 拿走不谢!
  2. STL之vetor 排序
  3. 开源Asp.Net Core小型社区系统
  4. 原生js系列之DOM工厂模式
  5. Gson的fromJson()方法
  6. centos iptables_SQLyog远程连接centos中mysql数据库
  7. 实践torch.fx第一篇——基于Pytorch的模型优化量化神器
  8. [Bzoj1911][Apio2010]特别行动队(斜率优化)
  9. 计算机office报名时间,计算机二级office每年的报名时间和考试时间是什么时候?...
  10. VLAN tag格式
  11. ArcGIS | 02小技巧-三调地类转换
  12. 物品分类游戏html5,幼儿物品分类教案
  13. Postman接口自动化测试之— 请求参数进行MD5/SHA256摘要计算
  14. java记事本编程工作原理_Java文件(io)编程之记事本开发详解
  15. 白盒测试——数据流测试
  16. Machine Learning and Application in Terahertz Technology: A Review on Achievements
  17. 小妞会装机 -- 一个装机软件的开发笔记 (二)
  18. 金蝶K3发票系统与航天金税系统对接批量打印发票功能实现
  19. 杨老师教你学会使用富文本编辑器KindEditor之添加页面设计
  20. 【Mysql】基础篇:DDL (data definition language) 总结

热门文章

  1. smarty去除html标签,Smarty与脚本中的html标签爆裂
  2. python 通登录银行_Python3 适合初学者学习的银行账户登录系统实例
  3. mysql设计技巧_MySQL库表设计小技巧
  4. 安卓应用用户数据_Android手机用户注意,你要知道的中国十大安卓应用商店
  5. android studio配置java_android studio配置Javah 和ndk-build
  6. 中南大学计算机在线考试答案,中南大学计算机考试复习题
  7. java map null吗_Java: Map里面的键和值可以为空吗?
  8. systemd管理mysql多实例_使用 systemd 配置多个 MySQL 8.0 实例
  9. 手机计算机数据消失了怎么恢复,电脑突然黑屏闪退之后怎么恢复丢失的数据
  10. vba 修改access表的链接地址_神奇的VBA编程:禁止修改Excel工作表名称