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

时间: 2024-11-09 06:51:52

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

MyBatis Cache配置

MyBatis提供了一级缓存和二级缓存 配置 全局配置 配置 说明 默认值 可选值 cacheEnabled 全局缓存的开关 true true false localCacheScope 本地缓存,SESSION表示执行的sql结果缓存数据可以在同一个sqlSession共享,而STATEMENT,则同只有在单条语句会被缓存,两条语句不能共享缓存数据 SESSION SESSION STATEMENT     <!-- 默认值 --><setting name="cacheE

HBase安装与配置(完全分布式)

------------------------------------------------ 一.前言 二.环境 三.配置 1.解压hbase安装包 2.配置系统环境变量 3.修改conf/hbase-env.sh脚本,设置环境变量 4.编辑hbase-site.xml进行配置 5.修改regionservers,添加所有slave主机 6.修改hadoop下的hdfs-site.xml 7.分发到各个slave主机 8.启动Hbase 9.验证Hmaster已经启动 四.测试 ------

Shiro Cache配置

要实现Shiro的Cache配置非常简单,默认使用ehcache,直接配置cacheManager制定实现为EhCacheManager,然后通过property制定对应的ehcache-shiro.xml文件 spring配置文件 <!-- 用户授权信息Cache, 采用EhCache --> <bean id="cacheManager" class="org.apache.shiro.cache.ehcache.EhCacheManager"

HBase的环境配置及其应用

-------------------------------------------------------------------------------------- [版权申明:本文系作者原创,转载请注明出处] 文章出处:http://blog.csdn.net/sdksdk0/article/details/51680296 作者: 朱培              ID:sdksdk0 --------------------------------------------------

[HBase_1] HBase安装与配置

0. 说明 [HBase_1] HBase安装与配置 原文地址:https://www.cnblogs.com/share23/p/10365888.html

hbase ganglia监控配置

hbase ganglia 显示器 hbase 构造 hadoop-metrics2-hbase.properties *.sink.ganglia.class=org.apache.hadoop.metrics2.sink.ganglia.GangliaSink31 *.sink.ganglia.period=10 hbase.sink.ganglia.period=10 hbase.sink.ganglia.servers=239.2.11.71:8649 hbase.class=org.a

nginx Proxy Cache 配置

总结一下 proxy cache 设置的常用指令及使用方法: proxy_cache proxy_cache zone | off 配置一块公用的内存区域的名称,该区域可以存放缓存的索引数据.注意:zone 代表用于存放缓存索引的内存区域的名称(需要使用 proxy_cache_path指令设置):off 代表关闭Proxy Cache功能 proxy_cache_path proxy_cache_path path [levels=levels] keys_zone=name:size [in

Hbase伪分布式配置

Hbase配置 tar -zxvf hbase-1.2.6-bin.tar.gz mkdir /opt/hbase mv hbase-1.2.6 /opt/hbase/hbase1.2.6 # 配置环境变量 vim /etc/profile # HBase Config export HBASE_HOME=/opt/hbase/hbase1.2.6 # PATH config export PATH=.:${JAVA_HOME}/bin:${SCALA_HOME}/bin:${SPARK_HOM

Nginx 进阶 (ssl、fpm、rewrite、cache配置等)

一.配置https网站 1.自建CA (1)生成私钥文件 mkdir -p /etc/pki/CA/private #创建私钥保存的目录 (umask 077;openssl genrsa -out /etc/pki/CA/private/cakey.pem 4096) #创建私钥 ll /etc/pki/CA/private/ # 私钥只能自己保存,对保密性要求高 (2)生成自签证书 openssl req -new -x509 -key /etc/pki/CA/private/cakey.p