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是最優


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM