hbase之setCaching 和 setBatch 和setMaxResultSize

本文详细探讨了HBase中setCaching、setBatch和setMaxResultSize的原理和作用,通过公式解释了它们如何影响RPC调用次数和结果返回数量。介绍了ClientScanner的scan过程,并分析了默认参数设置及其对性能的影响,旨在帮助理解这些配置参数的含义和优化策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.前沿

关于hbase setCaching ,setBatch 网上搜索一大把资料,主要的目的是以空间换时间,减少RPC请求的次数 ;之前看到的一些文章不能完全解答自己的一些疑惑 比如 :不设置setBatch,返回的result 的数量?其对rpc次数的影响?setCaching默认值?其次新版本hbase(HBase-0.98 之后的版本,还没有考证)引入了setMaxResultSize 的概念等。 特此写篇博客记录下

2.ClientScanner scan 的原理以及源码查看

先写之前,总结下一些公式(大致可以参考为,不完全正确):

Result 返回的个数 =( row数 * 每行的列数 )/ Min(每行列数,Batch大小)

RPC 返回的个数  = (row数 * 每行的列数)/ Min(每行列数,Batch大小) / Caching大小

(只所以 称为 参考公式 原因如下,第一引入了setMaxResultSize 参数,判断某次rpc调用结束的机制发生变化,肯定还以setMaxResultSize 有关啦 ,第二 (row数 * 每行的列数)准对每行的列数是固定的,如果不固定,此公式可能有所误差)

 

setMaxResultSize 作用 :

看到上面的公式,我们可以得出 setCaching 是用来控制rpc的个数,但仅仅按照这个阈值貌似还差点什么,想到这大家应该可以猜想到setMaxResultSize作用了吧!即 从单次rpc返回的所有Result的总大小来控制某次rpc是否结束

代码部分:

//scala 代码
val scannerIte = hTable.getScanner(scan).iterator()
while (sc
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值