HBase Minor Compaction和Major Compaction

背景

HBase在將數據落盤到HDFS上之後,爲了解決小文件並提高數據訪問效率,定義了兩種方式來合併HFile文件。

1. Minor Compaction

控制Minor Compaction的幾個參數及說明:

參數名 默認值 描述信息
hbase.hstore.compaction.min 3 表示至少要有三個文件滿足minor合併要求時纔會啓動minor合併
hbase.hstore.compaction.mix 10 表示一次minor合併最多選擇10store file進行合併
hbase.hstore.compaction.min.size 小於該值的store file一定會被選入到minor compaction
hbase.hstore.compaction.mix.size 大於該值的store file一定不會被選入到minor compaction
hbase.hstore.compaction.ratio 1.2 store file按落盤時間排序,minor compaction總是從older store file開始選擇,如果該文件的size小於後面hbase.hstore.compaction.maxstore file文件總和乘以hbase.hstore.compaction.ratio的值,那麼該store file將加入到minor store中,同時要滿足hbase.hstore.compaction.mix規定的條件纔會啓動minor compaction.

2. Major Compaction

觸發Major Compaction的三種方法:

  1. 在命令行中使用命令major_compact

  2. 使用API majorCompact()

  3. Region Server 自動運行

如果採用自動運行,則控制Major Compaction的幾個參數及說明如下:

參數名 默認值 描述信息
hbase.hregion.majorcompaction 24 當啓動region server自動運行major compaction時的運行週期
hbase.hregion.majorcompaction.jetter 0.2 爲防止region server在同一時間運行major compaction,運行週期浮動錯開同時運行情況.

24-24*0.2=19.2

24+0.2*24=28.8

所以Major Compaction 19.2~28.8小時運行一次

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章