hbase内存规划(读多写少型和写多读少型)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hbase内存规划(读多写少型和写多读少型)相关的知识,希望对你有一定的参考价值。

//简单说来主要包括读多写少型和写多读少型),内存的相关配置却完全不同。

1、针对不同应用场景,对多种工作模式下的参数进行详细说明,并结合相关示例对集群规划中最核心模块-内存规划进行介绍。
2、HBase中内存规划直接涉及读缓存BlockCache、写缓存MemStore,影响系统内存利用率、IO利用率等资源以及读写性能等,重要性不言而喻。
3、主要配置也是针对BlockCache和MemStore进行,
4、然而针对不同业务类型(简单说来主要包括读多写少型和写多读少型),内存的相关配置却完全不同。
5、再者,对于读缓存BlockCache,线上一般会有两种工作模式:LRUBlockCache和BucketCache,不同工作模式下的相关配置也不尽相同。
6、为了比较完整的说明不同应用场景以及不同缓存工作模式的内存规划,下文会分分别介绍两个案列:读多写少型+BucketCache,写多读少型+LRUBlockCache。

提示:
1、需要说明的是,业务类型和读缓存工作模式之间没有任何直接的关联。
2、业务到底使用BucketCache还是使用LRUBlockCache,只和分配给RegionServer的内存大小有关。
3、一般而言,如果HBASE_HEAPSIZE > 20G,选择BucketCache,否则选择LRUBlockCache(参考hortonworks文档),
//注意在cdh中的hbase默认都是bucketcache缓存机制。

案例一:写多读少型 + LRUBlockCache //必须见博客,此处笔记做的不详细
LRUBlockCache模式下的内存分布图
技术图片
图中分配给RegionServer进程的内存就是JVM内存,主要分为三部分:LRUBlockCache,用于读缓存;MemStore,用于写缓存;Other,用于RS运行所必须的其他对象;

参考链接:
HBase最佳实践-内存规划 http://hbasefly.com/2016/06/18/hbase-practise-ram/ ***** //必须见博客

以上是关于hbase内存规划(读多写少型和写多读少型)的主要内容,如果未能解决你的问题,请参考以下文章

Java多线程——锁概念与锁优化

CAS 与原子操作

乐观锁和悲观锁

PHP中的PDO操作学习查询结构集

PHP中的PDO操作学习查询结构集

缓存数据一致性实践