hbase中region的大小和數量的重要影響


region數量的影響:

通常較少的region可使集群運行的更加平穩,官方指出,每個regionServer大約100個regions的時候效果最佳,理由如下:

1)hbase的一個特性MSLAB,它有助於防止堆內存的碎片化,減輕垃圾回收full gc的問題,默認是開啟的。但是每個MenStore需要2MB,如果region過多,就算不儲存數據,也會占用很多內存。

2)如果region過多,MenStore也過多,就會觸發regionServer的限制,導致flush,就會對用戶請求產生較大的影響,可能阻塞該regionServer上的更新操作。

3)HMaster需要花費大量的時間來分配和移動Region,且過多的region會增加zookeeper的負擔。

4)hbase讀入數據進行處理的mapreduce程序,過多的region會產生很多的map任務數量,默認情況下有設計的region數量決定。

region大小的影響:

hbase中的數據一開始會寫入MenStore,超過配置之后,會flush到磁盤成為HStore文件,當HStore的數量超過配置之后,會啟動compaction,將他們合並為一個HStore。當合並后的HStore大於max.filesize時,會觸發分隔動作,將它切分為兩個region。hbase.hregion.max.filesize不宜過大或過小,經過實戰,生產高並發運行下,最佳大小5-10GB!關閉某些重要場景的hbase表的major_compact!在非高峰期的時候再去調用major_compact,這樣可以減少split的同時,顯著提供集群的性能,吞吐量、非常有用。

1)當hbase.hregion.max.filesize比較小時,觸發split的機率更大,系統的整體訪問服務會出現不穩定現象。

2當hbase.hregion.max.filesize比較大時,由於長期得不到split,因此同一個region內發生多次compaction的機會增加了。這樣會降低系統的性能、穩定性,因此平均吞吐量會受到一些影響而下降。


免責聲明!

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



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