【小資說庫】第13期 應用程序開發人員、DBA和DBMS開發人員的分工是怎樣的?
1003
2022-05-28
本篇博客,小菌為大家帶來的是關于HBase的3個重要機制。
1.flush 機制
1.(
hbase.regionserver.global.memstore.size
) 默認;堆大小的40%
regionServer的全局memstore的大小,超過該大小會觸發flush到磁盤的操作,默認是堆大小的40%,而且regionserver級別的flush會阻塞客戶端讀寫
2.(
hbase.hregion.memstore.flush.size
) 默認:128M
單個region里memstore的緩存大小,超過那么整個HRegion就會flush。
3.(
hbase.regionserver.optionalcacheflushinterval
) 默認:1h
內存中的文件在自動刷新之前能夠存活的最長時間
4.
hbase.regionserver.global.memstore.size.lower.limit
默認:堆大小 * 0.4 * 0.95
有時候集群的“寫負載”非常高,寫入量一直超過flush的量,這時,我們就希望memstore不要超過一定的安全設置。在這種情況下,寫操作就要被阻塞一直到memstore恢復到一個“可管理”的大小, 這個大小就是默認值是堆大小 * 0.4 * 0.95,也就是當regionserver級別的flush操作發送后,會阻塞客戶端寫,一直阻塞到整個regionserver級別的memstore的大小為 堆大小 * 0.4 *0.95為止
5.(
hbase.hregion.preclose.flush.size
) 默認為:5M
當一個 region 中的 memstore 的大小大于這個值的時候,我們又觸發 了 close.會先運行“pre-flush”操作,清理這個需要關閉的memstore,然后 將這個 region 下線。當一個 region 下線了,我們無法再進行任何寫操作。 如果一個 memstore 很大的時候,flush 操作會消耗很多時間。“pre-flush” 操作意味著在 region 下線之前,會先把 memstore 清空。這樣在最終執行 close 操作的時候,flush 操作會很快。
6.(
hbase.hstore.compactionThreshold
) 默認:超過3個
一個store里面允許存的hfile的個數,超過這個個數會被寫到新的一個hfile里面 也即是每個region的每個列族對應的memstore在fulsh為hfile的時候,默認情況下當超過3個hfile的時候就會 對這些文件進行合并重寫為一個新文件,設置個數越大可以減少觸發合并的時間,但是每次合并的時間就會越長。
2、compact機制
詳細請見《HBase官方文檔》
主要就是當小的storeFile文件達到三個,會合并成大的Storefile文件。并且清理過期的數據,包括刪除的數據,將數據的版本號保存為3個。
3.split機制
當Region達到閾值,會把過大的Region一分為二。
默認一個HFile達到10Gb的時候就會進行切分。
總結
Flush 機制
hbase.regionserver.global.memstore.size: 默認;堆大小的40%
regionServer的全局memstore的大小(多個CF的memstore-多個region),超過該大小會觸發flush到磁盤的操作,會阻塞客戶端讀寫flush將所有的memstore全部flush.hbase不建議配置過多列族:過多的列族會消耗大量的內存,同時數據在flush時消耗磁盤IO.一個regionserver續寫操作可用堆內存的80%,讀取占用40% ,寫入占用40%。這兩個參數直接影響hbase讀寫性能。
hbase.hregion.memstore.flush.size:默認:128M(單個region里memstore的緩存大小)
hbase.regionserver.optionalcacheflushinterval: 默認:1h
hbase.regionserver.global.memstore.size.lower.limit: 默認:堆大小 0.95倍
hbase.hregion.preclose.flush.size:默認為:5M 提前進行flush.(先flush一小部分,等后面數據達到閾值在flush后
面的數據) 好處:比一次flush效率高
什么時候觸發合并
hbase.hstore.compactionThreshold: 默認:3個 (flush文件的數量超過3個進行合并)
compact機制
默認3個
小的storeFile 文件達到3個,合并成大的storeFile文件。
split機制
默認一個HFile達到10Gb的時候就會進行切分
好了本次的分享就到這里了,對大數據技術感興趣的朋友記得關注小菌喲(^U^)ノ~YO
HBase
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。