Hbase内存规划

作者: 墨默滴 | 来源:发表于2017-03-09 10:55 被阅读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 regions
    • 128M memstores
    • HDFS replication factor of 3
    • RegionServer中所有MemStore存在JVM内存中的比例上限 0.4

    得到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

    相关文章

      网友评论

        本文标题:Hbase内存规划

        本文链接:https://www.haomeiwen.com/subject/ynhwgttx.html