zoukankan      html  css  js  c++  java
  • 关于Hbase的cache配置

    关于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

  • 相关阅读:
    Java IO 之 RandomAccessFile 操作文件内容
    Java IO 之 FileFilter与FilenameFilter
    Java IO 之 File 的创建、重命名与遍历
    Java IO 之 System类
    JVM内存区域配置
    切换 显示与隐藏页面元素
    thead tfoot tbody标签的使用
    使用锚点在HTML页面中快速移动
    ASP.NET Core 项目归档
    检测到有潜在危险的 Request.Form 值 转
  • 原文地址:https://www.cnblogs.com/yxwkf/p/5056774.html
Copyright © 2011-2022 走看看