Hbase三個重要機制

2021-10-04 07:34:02 字數 1372 閱讀 6844

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的時候就會 對這些檔案進行合併重寫為乙個新檔案,設定個數越大可以減少觸發合併的時間,但是每次合併的時間就會越長

把小的storefile檔案合併成大的storefile檔案。

清理過期的資料,包括刪除的資料

將資料的版本號儲存為3個

當你為生活中的每件事承擔起責任的時候,你就擁有了改變生活的力量

三個重要概念的區分

計算機只能理解機器語言,不能理解高階語言,因此需要將高階語言轉化為計算機語言。依據語言轉化方式的不同,區分出了編譯型語言和解釋型語言。編譯型語言,指的是一次性的將高階語言轉化為計算機語言,此類程式執行前會將源 編譯為機器語言的檔案,如exe格式的檔案。如要執行,直接執行exe檔案即可,不需要再次編譯...

剖析RedHat Linux中三個重要核心檔案

在網路中,不少伺服器採用的是linux系統。為了進一步提高伺服器的效能,可能需要根據特定的硬體及需求重新編譯linux核心。編譯linux核心,需要根據規定的步驟進行,編譯核心過程中涉及到幾個重要的檔案。比如對於redhat linux,在 boot目錄下有一些與linux核心有關的檔案,進入 bo...

剖析RedHat Linux中三個重要核心檔案

在網路中,不少伺服器採用的是linux系統。為了進一步提高伺服器的效能,可能需要根據特定的硬體及需求重新編譯linux核心。編譯linux核心,需要根據規定的步驟進行,編譯核心過程中涉及到幾個重要的檔案。比如對於redhat linux,在 boot目錄下有一些與linux核心有關的檔案,進入 bo...