本套技術專欄是做者(秦凱新)平時工做的總結和昇華,經過從真實商業環境抽取案例進行總結和分享,並給出商業應用的調優建議和集羣環境容量規劃等內容,請持續關注本套博客。版權聲明:禁止轉載,歡迎學習。QQ郵箱地址:1120746959@qq.com,若有任何學術交流,可隨時聯繫。學習
HBase中Master的角色被弱化了,就算短期待機都不會受影響,但不能宕機時間過久,數據的讀取和寫入都跟他沒有什麼關係。那麼Master主要負責什麼呢?建立表,修改列族配置,Region的分割和合並操做。測試
HBase全部數據的寫入操做第一步先二話不說寫進WAL中,而後進一步寫進MemStore中。等到MemStore的數據達到必定的數量時才刷寫到最終存儲的HFile中。若是在刷寫的時候宕機或者斷電了,幹保險業的WAl就會起到數據恢復的做用。爲何呢?由於WAL是放在HDFS上的,宕機是不影響WAL文件的。spa
注意數據寫入到MemStore以前,是要先要寫入到WAL的,因此增長MemStore並不能加快寫入速度,MemStore最大的意義,在於維持數據按照rowkey的順序排列,進而數據在MemStore中被整理成LSM樹,最後再刷寫到HFile上。操作系統
在一個RegionServer中,會有多個Region,而在每個Region中,會根據 Column Family生成多個Store。注意一個Store又會對應一個MemStore。而一個RegionServer對應一個全局的BlockCache。code
Minor compact :能夠用於把多個HFile文件進行合併,同時能夠刪除TTL過時的數據,可是手動刪除數據操做是不能被刪除的。爲何這裏能夠刪除TTL過時的數據?由於MemStore在LSM整理時,對於TTL過時只要不寫入HFile文件就算是刪除了,而對於手動刪除數據操做則可能位於不一樣的HFile文件中,所以作不到刪除。cdn
Major Compact:是把一個Store中的HFile文件合併爲一個HFile文件,而不是把一個Region內的全部HFile文件,由於一個Region可能有多個Column Family對應的Store。blog
編輯hbase-env . sh,調整HBASE_HEAPSIZE大小,默認是1G,而MemStore則佔用40%,也就是400M。顯然是不夠的。所以須要根據須要設置,好比:進程
export HBASE_HEAPSIZE =8G
複製代碼
HBase JVM 最大使用內存調整:內存
(1) HBASE_MASTER_OPTS資源
export HBASE_MASTER_OPTS="$HBASE_MASTER_OPTS -Xmx4g -Xms4g"
複製代碼
(2) HBASE_REGIONSERVER_OPTS
export HBASE_REGIONSERVER_OPTS="$HBASE_REGIONSERVER_OPTS -Xms8g -Xmx8g"
複製代碼
注意永遠至少留10%的內存給操做系統。
舉例以下:一臺16GB的機器,上面有MapReduce服務,RegionServer 和 DataNode
分配策略以下:
緣由主要是Zookeeper惹的禍,在RegionServer發生FULL GC的時候,STW期間太長,被ZK標記爲宕機,當RegionerServer GC完成後,甦醒了發現被標記爲宕機了,這時候RegionerServer GC就自殺,防止腦裂發生。醒來再自殺,朱麗葉暫停,哈哈!
JVM提供4種GC方案
若是你的RegionServer內存大於32GB,建議使用G1GC策略,由於G1Gc會把堆內存劃分爲多個Region,而後對各個Region單獨進行GC,這樣總體的Full GC 能夠被最大限度地避免。另外經過設置MaxGCPauseMillis最大暫停時間,避免時間太長RegionServer自殺。
export HBASE_REGIONSERVER_OPTS="$HBASE_REGIONSERVER_OPTS -Xms8g -Xmx8g -XX:+UseG1GC
-XX:+MaxGCPauseMillis=100"
複製代碼
若是你的RegionServer內存小於4GB,就不須要考慮G1GC策略了,直接使用
-XX:+UseParNewGC (年輕代使用)
-XX:+UseConcMarkSweepGC(年老代使用)
export HBASE_REGIONSERVER_OPTS="$HBASE_REGIONSERVER_OPTS -Xms8g -Xmx8g
-XX:+UseParNewGC -XX:+UseConcMarkSweepGC "
複製代碼
網上的Hbase調優資料良莠不齊,實在是不忍卒讀,有些都是拼湊且版本過期的東西,我這裏決定綜合全部優質資源進行整合,寫一份最全,最有深度,不過期的技術博客。辛苦成文,各自珍惜,謝謝!
本套技術專欄是做者(秦凱新)平時工做的總結和昇華,經過從真實商業環境抽取案例進行總結和分享,並給出商業應用的調優建議和集羣環境容量規劃等內容,請持續關注本套博客。版權聲明:禁止轉載,歡迎學習。QQ郵箱地址:1120746959@qq.com,若有任何學術交流,可隨時聯繫。
秦凱新 於深圳 20182309