关于Hbase的cache配置

在hbase中的hfilecache中,0.96版本号中新添加了bucket cache,

bucket cache通过把hbase.offheapcache.percentage配置为0来启用,

假设hbase.offheapcache.percentage的配置值大于0时,直接使用堆外内存来管理hbase的cache,

通过把hfile.block.cache.size的值设置为0会禁用HBASE的cache功能。

首先在CacheConfig.instantiateBlockCache函数中。

1.首先检查hbase的hfile cache是否开启,假设设置为0表示禁用cache,同一时候配置不能大于1.0

float cachePercentage = conf.getFloat(HConstants.HFILE_BLOCK_CACHE_SIZE_KEY,

      HConstants.HFILE_BLOCK_CACHE_SIZE_DEFAULT);

    if (cachePercentage == 0L) {

      blockCacheDisabled = true;

      return null;

    }

    if (cachePercentage > 1.0) {

      throw new IllegalArgumentException(HConstants.HFILE_BLOCK_CACHE_SIZE_KEY +

        " must be between 0.0 and 1.0, and not > 1.0");

    }

2.检查 hbase.offheapcache.percentage是否是小于或等于0的值。假设是表示开启bucket cache

MemoryUsage mu = ManagementFactory.getMemoryMXBean().getHeapMemoryUsage();

    long lruCacheSize = (long) (mu.getMax() * cachePercentage);

    int blockSize = conf.getInt("hbase.offheapcache.minblocksize", HConstants.DEFAULT_BLOCKSIZE);

    long offHeapCacheSize =

      (long) (conf.getFloat("hbase.offheapcache.percentage", (float) 0) *

          DirectMemoryUtils.getDirectMemorySize());

    if (offHeapCacheSize <= 0) {

      bucket cache......

    }else {

      使用堆外内存进行cache

    }





3.bucket cache的详细配置

a.首先读取hbase.bucketcache.ioengine配置的值,可配置项为

    file:/path/cache.data  基中的/path表示详细的文件路径,也就是SSD这类的快速磁盘

  offheap  使用堆外内存

  heap   不使用堆外内存





b.通过hbase.bucketcache.size配置cache的大小,

这里注意下规则;假设配置的值是0-1之间的小数时,表示hbase堆的百分比

否则表示配置的多少个MB的值,如此处配置为1024那么表示配置有1GB的cache

float bucketCachePercentage = conf.getFloat(BUCKET_CACHE_SIZE_KEY, 0F);

      // A percentage of max heap size or a absolute value with unit megabytes

      long bucketCacheSize = (long) (bucketCachePercentage < 1 ? mu.getMax()

          * bucketCachePercentage : bucketCachePercentage * 1024 * 1024);





c.假设配置的为二级缓存,也就是非内存的缓存时,设置hbase.bucketcache.combinedcache.enabled的值为false

关于Hbase的cache配置的更多相关文章

  1. HBase Block Cache(块缓存)

    Block Cache HBase提供了两种不同的BlockCache实现,用于缓存从HDFS读出的数据.这两种分别为: 默认的,存在于堆内存的(on-heap)LruBlockCache 存在堆外内 ...

  2. MyBatis Cache配置

    @(MyBatis)[Cache] MyBatis Cache配置 MyBatis提供了一级缓存和二级缓存 配置 全局配置 配置 说明 默认值 可选值 cacheEnabled 全局缓存的开关 tru ...

  3. HBase的环境配置及其应用

    -------------------------------------------------------------------------------------- [版权申明:本文系作者原创 ...

  4. [svc]tomcat目录结构/虚拟主机/nginx反向代理cache配置

    tomcat目录文件 /usr/local/tomcat/bin/catalina.sh stop sleep 3 /usr/local/tomcat/bin/catalina.sh start to ...

  5. Hbase简介安装配置

    HBase —— Hadoop Database的简称 ,hbase 是分布式,稀疏的,持久化的,多维有序映射,它基于行键rowkey,列键column key,时间戳timestamp建立索引.它是 ...

  6. hbase安装与配置-分布式

    HBASE安装与配置 备注: 1:本文在hadoop的完全分布式基础上部署hbase 2:本文使用的是小博主自己搭建的zookpeer服务,未使用hbase本身的zookpeer服务 本文内容在以下前 ...

  7. hbase集群配置

    说明 安装 配置 启动 网页效果 一点废话 本文介绍hbase集群配置 说明 hbase想正确配置成功的前提是,你必须知道hadoop集群和zookeeper集群是如何配置的 安装 下载地址 http ...

  8. HBase 安装与配置及常用Shell命令

    HBase 安装与配置 首要配置 配置时间同步(所有节点上执行) yum -y install chrony vi /etc/chrony.conf #写入(7版本用server:8版本用pool): ...

  9. HBASE学习笔记--配置信息

    hbase的配置信息,在hbase-site.xml里面有详细说明. 可以按照需要查询相关的配置. <?xml version="1.0"?> <?xml-sty ...

随机推荐

  1. 内网穿透神器ngrok(转)

    相信做Web开发的同学们,经常会遇到需要将本地部署的Web应用能够让公网环境直接访问到的情况,例如微信应用调试.支付宝接口调试等.这个时候,一个叫ngrok的神器可能会帮到你,它提供了一个能够在公网安 ...

  2. 两道二分coming~

    第一道:poj 1905Expanding Rods 题意:两道墙(距离L)之间架一根棒子,棒子受热会变长,弯曲,长度变化满足公式( s=(1+n*C)*L),求的是弯曲的高度h. 首先来看这个图: ...

  3. Java的HashCode

    ·HashCode就是根据对象存储在内存的地址计算出的一个值.这个值可以标识这个对象的位置.也可以对比两个引用变量是否指向同一个对象. ·String重写了hashCode方法——改为根据字符序列计算 ...

  4. hdu 4277

    题目链接 #include <cstdio> //by-ACMer_xiaohao #include <cstring> #include <map> using ...

  5. 14.5.2 Changing the Number or Size of InnoDB Redo Log Files 改变InnoDB Redo Log Files的数量

    14.5.2 Changing the Number or Size of InnoDB Redo Log Files 改变InnoDB Redo Log Files的数量 改变InnoDB redo ...

  6. 执行Asp.net应用程序在Linux上的3种托管方式

    执行Asp.net应用程序在Linux上的3种托管方式 想要执行Asp.net应用程序在Linux上.我们有3种选择: 1.使用Apache作为Webserver.使用mod_mono:http:// ...

  7. pwd的实现

    #include <string.h> #include <stdlib.h> #include <dirent.h> #include <sys/types ...

  8. Xcode免证书真机调试,解决cannot read entitlement data问题

    本文是根据某个帖子写的(帖子链接在最后放出),但是在配置的过程中,遇到了一个纠结的问题,这个问题折腾了我N久,一直没搞明白到底是什么原因,问题如下: 按照原帖上写的每一步去做了,但是在最后编译的时候出 ...

  9. NetBeans工具学习之道:NetBeans的(默认)快捷键

    没什么好介绍的,是netbeans的快捷键,比較全面.看到好多坛子里还在问eclipse下的这个快捷键怎么netbeans下没有呢.曾经收集的,如今列在以下: 事实上,在当前安装的netbeans的 ...

  10. activity_main.xml: java.lang.NullPointerException

    1.错误描写叙述 eclipse.buildId=4.4.0.I20140606-1215 java.version=1.7.0_67 java.vendor=Oracle Corporation B ...