我爱编程

Hbase内存规划

2017-03-09  本文已影响0人  墨默滴

我们主要考虑的硬件资源:内存、CPU、磁盘

CPU

CPU资源:HBase是一个CPU敏感型业务,无论数据写入读取,都会因为大量的压缩解压操作,特别耗费计算资源。因此对于HBase来说,CPU越多越好。

内存、磁盘

官方文档给出的一个推荐范围region个数在20~200之间,而单个Region大小控制在10G~30G。

磁盘与内存的对应
  1. 公式:
    Disk Size / Java Heap = RegionSize / (MemstoreSize * ReplicationFactor * HeapFractionForMemstore )

  2. 公式由来
    硬盘容量纬度下Region个数:Disk Size / (RegionSize *ReplicationFactor)
    Java Heap纬度下Region个数:Java Heap * HeapFractionForMemstore / MemstoreSize

  3. 参数配置
    对应HBase/HDFS配置参数:
    hbase.hregion.max.filesize/(hbase.hregion.memstore.flush.size *dfs.replication * hbase.regionserver.global.memstore.lowerLimit)

  4. 示例

    按以下默认配置(0.94版本)

得到10GB/128MB*3*0.4 = 96

Hlog

HBase对于每一个regionserver配置hlog的参数

hbase.regionserver.hlog.blocksize  = HDFS block size
hbase.reionserver.logroll.mutiplier = 0.95
hbase.reiongserver.maxlogs = 32

hbase.regionserver.global.memstore.lowerLimit <=
hbase.regionserver.hlog.blocksize*
hbase.reionserver.logroll.mutiplier*
hbase.reiongserver.maxlogs

128MB * 0.95 * 32 = 4T >= 10GB * 0.4

参考:
http://hadoop-hbase.blogspot.com/2013/01/hbase-region-server-memory-sizing.html

上一篇下一篇

猜你喜欢

热点阅读