HBase scan setBatch和setCaching的区别

HBase的查询实现只提供两种方式:

1、按指定RowKey获取唯一一条记录,get方法(org.apache.hadoop.hbase.client.Get)

2、按指定的条件获取一批记录,scan方法(org.apache.Hadoop.Hbase.client.Scan)

 

实现条件查询功能使用的就是scan方式,scan在使用时有以下几点值得注意:
1、scan可以通过setCaching与setBatch方法提高速度(以空间换时间);
2、scan可以通过setStartRow与setEndRow来限定范围([start,end)start是闭区间,end是开区间)。范围越小,性能越高。
通过巧妙的RowKey设计使我们批量获取记录集合中的元素挨在一起(应该在同一个Region下),可以在遍历结果时获得很好的性能。
3、scan可以通过setFilter方法添加过滤器,这也是分页、多条件查询的基础。

 

scan中的setCaching与setBatch方法的区别是什么呢?

setCaching设置的值为每次rpc的请求记录数,默认是1;cache大可以优化性能,但是太大了会花费很长的时间进行一次传输。

setBatch设置每次取的column size;有些row特别大,所以需要分开传给client,就是一次传一个row的几个column。

batch和caching和hbase table column size共同决意了rpc的次数。

 

通过下表可以看出caching/batch/rpc次数的关系:

 

10 rows, 2 families, 10column per family,total:200 cell

 

 

转载于:https://my.oschina.net/sniperLi/blog/906044

来源:https://my.oschina.net/sniperLi/blog/906044


智能推荐

Scan

问题: 从成千上万的key中找出特定前缀的 key 列表? 解决方案: Redis提供了简单粗暴的指令 keys 用来列出满足特定正则字符串规则的key。 这个方式有很明显的缺点: 为了解决上述缺点,在2.8版本后加入了 scan 指令。 Scan的优点: 字典结构...

Hbase-之Scan流程以及角色解析

Hbase-之Scan流程以及角色解析 Hbase的扫描流程如下: 当Client对Hbase的Table发起一个scan请求,Hbase会为该表生成1到N个RegionScanner对象,每个RegionScanner对应一个Region; 每个RegionScanner又包含一个1到N个StoreScanner的列表,每个StoreScanner对应一个Store; 每个StoreScanne...

hbase shell 进行list、scan等操作报错

hbase shell 进行list、scan等操作报错,一系列解决方案 报错信息:ERROR: Can’t get master address from ZooKeeper; znode data == null 在网上找的解决方案: 先把zookeeper、hbase、Hadoop全停止,按顺序先重启hadoop,再启动zookeeper,再启动集群, 最后启动Hbase时,首先...

RF简单操作学习

1、创建一个项目: 点击File -> New Project,创建一个新项目如下图: 这里选择directory,是因为它类似与一个文件夹,可以在里面创建多个测试套件,如果想选择file,就相当于一个文件,里面只能输入测试用例,而不能创建测试套。 2、创建测试套: 如上,创建好新项目后,新项目上右击鼠标,点击New Suite,创建测试套如下: python3.8支持的ride最新版本,貌...

推荐Android常用的比较好的插件

Android studio 安装插件步奏:File --> Settings -->Plugins -->Browse repositories -->输入你要安装的插件 1.Color Manager:安装以后效果图如下: 2.Cmake simple highlighter : ndk开发时用到 3.Android Dialog 4.Alibaba Java Codi...

猜你喜欢

浅谈vue项目进阶开发-样式篇

1.全局sass的引入 项目开发时,引入全局基本样式,是必要的。如何引入就不再赘述,度娘知道:https://blog.csdn.net/qq_31393401/article/details/80759535; 全局样式包括:reset.scss里包括哪些相信应该都清楚,其次base.scss内可以根据需求加一些基础可适用的样式,如input,button。利用scss预处理样式的优势定义一些样...

java源码学习之 ReentrantLock内部实现类AQS

今日心情:气温降到零下十八度了,开车来的公司。十公里路程足足开了一个半小时,心都碎了。 如果内容有错误或者您有不同的见解,请关注我。想要思维导图的小伙伴们记得留言哦。 详细内容以及脑图链接地址:https://zhuanlan.zhihu.com/p/342500321/ 先上总结:在实现锁的时候通常会使用内部类实现AQS中的方法,而且这些方法必都是须要实现的。 为啥叫重入锁呢?因为同一个线程可以...

微信小程序,前端大梦想(一)

小程序框架MINA简介       微信公众平台“小程序”具有不是APP胜似APP的效果,是一种不需要下载安装即可使用的应用,它实现了应用“触手可及”的梦想,用户扫一扫或者搜一下即可打开应用。也体现了“用完即走”的理念,用户不用关心是否安装太多应用的问题。应用将无处不在,随时可...

壁挂炉开启采暖模式后,水泵24小时运转,安装联动线(联控线)后完美解决

壁挂炉开启采暖模式后,水泵24小时运转,安装联控线后完美解决 线介绍下我的硬件吧, 温控器是 SAS920WHL-7W 壁挂炉是 林内RBS-22UCA   温控器是带有联动功能的,官网可以查到这个型号 采暖公司的合同里面也提到了联动功能,但是验收时却没给我连接,也就是只连接了图中的N、L、L1,给我的口径是“林内加了联动会有毛病”   关于壁...

案例分析: SAP BRF+ rule不工作的原因

Created by Jerry Wang, last modified on Nov 01, 2014 有这么一个简单的BRF+ rule: 如果customer name 等于“sap”,则final price为1,否则为2: 在simulation mode里将sap传入customer, 然而最后计算结果既不是1也不是2,而为0: debug该BRF+ funct...

问答精选

Mysql - Table structure

I want to implement a counting system as follows Just see, (test_id,email_id, attempt_count, subject) forms unique row. I want to insert a row for each test attempt. So attemptCount must be incremente...

Shell scripting and -e parameter

I'm writing a shell script that create a database and store values into keys in a database.file. I got a test that catched my attention and i'm wondering why this is happening. The expected behavior w...

SLIM Framework post variables always null

I am using SLIM Framework with a simple post route function like: and want to get the post variables, but if I sent a post request with the Advanced Rest Client for Chrome like the following: the resu...

Generate random release name bamboo

I'm trying to generate a random release-name by using the Bamboo Server's deployment project / plan. I was able to generate a dynamic version number by using variables (defined the bamboo.release_numb...

Regular expression to generate a conditional push

INPUT OUTPUT: I wish to generate an array while keeping the order given by column 2 from input file. In this example, since there is no line in which column 2 = 3, I wish to push with " ". T...

相关问题

相关文章

热门文章

推荐文章

相关标签

推荐问答