hbase權威指南: store file合并(compaction)

來源:互聯網
上載者:User

          hbase為了防止小檔案(被刷到磁碟的menstore)過多,以保證保證查詢效率,hbase需要在必要的時候將這些小的store file合并成相對較大的store file,這個過程就稱之為compaction。在hbase中,主要存在兩種類型的compaction:minor  compaction和major compaction。

          major compaction 的功能是將所有的store file合并成一個,觸發major compaction的可能條件有:major_compact 命令、majorCompact() API、region server自動運行(相關參數:hbase.hregion.majoucompaction 預設為24 小時、hbase.hregion.majorcompaction.jetter 預設值為0.2 防止region server 在同一時間進行major compaction)。hbase.hregion.majorcompaction.jetter參數的作用是:對參數hbase.hregion.majoucompaction
規定的值起到浮動的作用,假如兩個參數都為預設值24和0,2,那麼major compact最終使用的數值為:19.2~28.8 這個範圍。

         minor compaction的運行機制要複雜一些,它由一下幾個參數共同決定:

                   hbase.hstore.compaction.min :預設值為 3,表示至少需要三個滿足條件的store file時,minor compaction才會啟動

                   hbase.hstore.compaction.max 預設值為10,表示一次minor compaction中最多選取10個store file

                   hbase.hstore.compaction.min.size 表示檔案大小小於該值的store file 一定會加入到minor compaction的store file中

                   hbase.hstore.compaction.max.size 表示檔案大小大於該值的store file 一定會被minor compaction排除

                   hbase.hstore.compaction.ratio 將store file 按照檔案年齡排序(older to younger),minor compaction總是從older store file開始選擇,如果該檔案的size 小於它後面hbase.hstore.compaction.max 個store file size 之和乘以 該ratio,則該store file 也將加入到minor compaction 中。

        如果對minor compaction過程還是不瞭解,可以去看hbase中關於minor compaction 的源碼,或者:http://blog.csdn.net/macyang/article/details/6423078

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.