• HBase单个RegionServer的region数目上限


    前言

              RegionServer维护Master分配给它的region,处理对这些regionIO请求,负责切分在运行过程中变得过大的region, 由于集群性能( 分配的内存和磁盘是有限的 )有限的,那么HBase单个RegionServer的region数目肯定是有上限的。

    Region数目上限

         RegionServerregion数目取决于memstore的内存使用,每个region拥有一组memstorememstore的数量有hstore决定,hstore的数据由创建表时的指定的列族个数决定,所以 每个regionmemstore的个数 表的列族的个数 ),可以通过配置来修改memstore占用内存的大小,一般设置在  128 M – 256M之间。

         RegionServer 分配一定比例的内存给它下面的所有memstore( 该比例大小 可通过hbase.regionserver.global.memstore.upperLimit 进行修改 ), 如果内存溢出(使用了太多的memstore),它可能会导致严重的后果,如服务器反应迟钝 或compact风暴。比较好的计算每RS(假设一个表)region的数量的公式为:

    ((RS memory) * (total memstore fraction)) / ((memstore size)*(# column families))

     例如: 如果 一个RegionServer配置的内存是16g,使用默认配置( hbase默认regionserver分给memstore的比例是0.4 , 默认的menstore的占用128M内存 ), 一个CF,那么这个regionServer下的region的个数大约为  16384 * 0.4 / 128*1 = 51个,实际测试大于这个数 一两倍 也没太大的问题。 一个HBase表包含一至多个region,那么表的数目上限也是可以估算出来的。

    Region大小上限

       对于生产场景中大表,最大的region大小主要是受compactions 的限制,大量大HFilecompact会降低群集性能。目前,该建议的最大region大小为10-20GB,而5-10GB是最优

  • 相关阅读:
    Using F2 to Rename Open Files
    Java 浅析 Thread.join()
    JDK 8
    Automata
    The Hungarian Abhorrence Principle
    Spring 与 MyBatis 的整合
    JDK 8
    面向对象设计原则汇总
    Java Error : type parameters of <T>T cannot be determined during Maven Install
    【源码拾遗】从vue-router看前端路由的两种实现
  • 原文地址:https://www.cnblogs.com/jechedo/p/5145582.html
Copyright © 2020-2023  润新知