Hbase列族個數建議設在1~3之間


列族數對Flush的影響

在Hbase中,調用API往對應的表中插入數據是會寫到MenStore的。而MenStore是一種內存結構。每個列族對應一個MenStore和多個HFile。

列族越多,會導致內存中存在越多的MrenStore。存儲在MenStore中的數據在滿足一定條件下將會促發Flush操作,這樣每次Flush的時候都會在磁盤中生成一個HFile文件,並且,Flush操作涉及到一定IO操作,也會阻塞客戶端的讀寫操作。

這樣會導致越多的列族最終持久化到磁盤的HFile越多。然而,當前的Flush操作是Region級別的,也就是說,Region中某個MenStore被Flush,同一個Region的其他Menstore也會進行Flush操作。當表有很多列族,而且列族之間數據不均勻,比如一個列族數據有100w條,另一個列族只有10w條數據,這樣,Flush操作的時候就會有更多的小文件產生。


免責聲明!

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



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