HBase缓存的使用
2013-11-25 12:41
302 查看
hbase中的缓存分了两层:memstore和blockcache。
其中memstore供写使用,写请求会先写入memstore,regionserver会给每个region提供一个memstore,当memstore满64MB以后,会启动flush刷新到磁盘。当memstore的总大小超过限制时(heapsize * hbase.regionserver.global.memstore.upperLimit * 0.9),会强行启动flush进程,从最大的memstore开始flush直到低于限制。
blockcache主要提供给读使用。读请求先到memstore中查数据,查不到就到blockcache中查,再查不到就会到磁盘上读,并把读的结果放入blockcache。由于blockcache是一个LRU,因此blockcache达到上限(heapsize * hfile.block.cache.size * 0.85)后,会启动淘汰机制,淘汰掉最老的一批数据。
一个regionserver上有一个blockcache和N个memstore,它们的大小之和不能大于等于heapsize * 0.8,否则hbase不能启动。默认blockcache为0.2,而memstore为0.4。对于注重读响应时间的系统,应该将blockcache设大些,比如设置blockcache=0.4,memstore=0.39。这会加大缓存命中率
其中memstore供写使用,写请求会先写入memstore,regionserver会给每个region提供一个memstore,当memstore满64MB以后,会启动flush刷新到磁盘。当memstore的总大小超过限制时(heapsize * hbase.regionserver.global.memstore.upperLimit * 0.9),会强行启动flush进程,从最大的memstore开始flush直到低于限制。
blockcache主要提供给读使用。读请求先到memstore中查数据,查不到就到blockcache中查,再查不到就会到磁盘上读,并把读的结果放入blockcache。由于blockcache是一个LRU,因此blockcache达到上限(heapsize * hfile.block.cache.size * 0.85)后,会启动淘汰机制,淘汰掉最老的一批数据。
一个regionserver上有一个blockcache和N个memstore,它们的大小之和不能大于等于heapsize * 0.8,否则hbase不能启动。默认blockcache为0.2,而memstore为0.4。对于注重读响应时间的系统,应该将blockcache设大些,比如设置blockcache=0.4,memstore=0.39。这会加大缓存命中率
相关文章推荐
- hbase中的缓存的计算与使用
- HBase缓存的使用
- hbase中的缓存的计算与使用
- HBase总结(十一)hbase Java API 介绍及使用示例
- 使用缓存时出现java.io.NotSerializableException:xxx.xxx.xxx.Bean解决办法
- Spring缓存注解@Cache,@CachePut , @CacheEvict,@CacheConfig使用
- JCS:使用缓存构建更快的应用程序
- 使用nginx的proxy_cache做网站缓存
- 大型web系统中缓存的使用
- 使用 SqlCacheDependency 类在 ASP.NET 中缓存
- 10个常见的缓存使用误区
- Google网络框架Volley的使用,Cache-Control=no-cache时强制缓存的处理
- Discuz! 内存缓存机制与使用方法
- 使用C#和Thrift来访问Hbase实例
- 什么时候使用缓存
- Android网络图片加载缓存处理库的使用
- ServletResponse的刷新头和禁止浏览器缓存头的使用
- 下载文件使用缓存(一次性读取到内存),优化性能(注意静态对象修改需要加锁)
- 关于hibernate的缓存使用
- Android平滑图片加载和缓存库Glide使用详解