HBase之BlockCache数据读取
来源:互联网 发布:阿里云配置tomcat教程 编辑:程序博客网 时间:2024/06/09 22:06
HBase上Regionserver的内存分为两个部分,一部分作为Memstore,主要用来写;另外一部分作为BlockCache,主要用于读数据;上面一篇文章已经介绍过Memstore,这里主要介绍读取数据的部分,即BlockCache。
BlockCache主要提供给读使用。读请求先到memstore中查数据,查不到就到blockcache中查,再查不到就会到磁盘上读,并把读的结果放入blockcache。由于blockcache是一个LRU,因此blockcache达到上限(heapsize * hfile.block.cache.size)后,会启动淘汰机制,淘汰掉最老的一批数据。
1.服务器端配置
一个regionserver上有一个blockcache和N个memstore,它们的大小之和必须小于heapsize* 0.8,否则hbase不能启动,因为仍然要留有一些内存保证其它任务的执行。即为
(1)hbase.regionserver.global.memstore.upperLimit默认值:0.4
(2)hfile.block.cache.size 默认值0.2
这两个值默认和为RegionServer的堆内存的60%,上面值在hbase-memstore刷写已经介绍过。一般情况下可具体看读写情况,对于注重读响应时间的系统,应该将blockcache设大些,比如设置blockcache=0.4,memstore=0.39,这会加大缓存命中率。
2.客户端读取数据配置
(1)hbase.client.scanner.caching 默认值:1
hbase.client.scanner.caching配置项可以设置HBase scanner一次从服务端抓取的数据条数,默认情况下一次一条。通过将其设置成一个合理的值,可以减少scan过程中next()的时间开销,代价是 scanner需要通过客户端的内存来维持这些被cache的行记录。
有三个地方可以进行配置:1)在HBase的conf配置文件中进行配置;2)通过调用HTable.setScannerCaching(intscannerCaching)进行配置;3)通过调用Scan.setCaching(intcaching)进行配置。三者的优先级越来越高。
少的RPC是提高hbase执行效率的一种方法,理论上一次性获取越多数据就会越少的RPC,也就越高效。但是内存是最大的障碍。设置这个值的时候要选择合适的大小,一面一次性获取过多数据占用过多内存,造成其他程序使用内存过少。或者造成程序超时等错误(这个超时与hbase.regionserver.lease.period相关)。
(2)hbase.regionserver.lease.period默认值:60000
说明:客户端租用HRegion server 期限,即超时阀值。
调优:这个配合hbase.client.scanner.caching使用,如果内存够大,但是取出较多数据后计算过程较长,可能超过这个阈值,适当可设置较长的响应时间以防被认为宕机。
本文参考(http://blog.csdn.net/huoyunshen88/article/details/9169077)
- HBase之BlockCache数据读取
- HBase之BlockCache数据读取
- HBase BlockCache
- Hbase BlockCache
- HBase源码分析之BlockCache二:BucketCache
- 【HBase基础教程】6、HBase之读取MapReduce数据写入HBase
- 【HBase基础教程】7、HBase之读取HBase数据写入HDFS
- hbase blockcache的配置问题
- HBase学习之数据读取流程详解
- HBase学习之数据读取流程详解
- HBase BlockCache系列 - 探求BlockCache实现机制
- HBase源码分析之BlockCache一:综述及LruBlockCache的实现
- Hbase not support MemStore to BlockCache
- HBase BlockCache机制讲解&源码分析
- [转]HBase BlockCache机制讲解&源码分析
- HBase读取数据过程
- Hbase读取数据
- HBase读取数据
- UIWebView加载html(转)
- ipad横竖屏尺寸(转载)
- python26高级[读写Excel](转)
- tomcat配置使用(转)
- MVP+Fresco+RxJava
- HBase之BlockCache数据读取
- Spring(2)ioc操作
- ardoino人类智能机械未来的希望
- 移植mtd-utils-1.5.1到arm记录
- iOS:KVO的概述与使用(转)
- 各位相加-LintCode
- 昨天申请的免费TexturePacker注册码到了
- Mysql基本用法(转)
- mysql的表分区(转)