HBaseのコンパクションまわりを調べてみた件。

| # Comments
せっかくまとめたのでこちらにも貼っておきます。

まとめのまとめ

コンパクションのトリガー

  • HBaseAdmincompact/split指示をした時 (hbase shell でのコマンド発行、WebUIのボタンぽちとか)
  • MemStoreをflushする時
  • リージョンをopenした時
  • MajorCompactionChecker (約3時間おきに起動) が、前回のメジャーコンパクションから24時間 (+/- 4.8時間: 後述) 以上経過しているリージョンを発見した時

メジャーコンパクションの周期

メジャーコンパクションはデフォルトで24時間周期になっているが、+/- 4.8時間 のブレが入れてある。

=> HBase のメジャーコンパクション実行時間 - 科学と非科学の迷宮

メジャーコンパクションになる条件

コンパクション指示があった時に、
  • 強制メジャーコンパクション指定されている (major_compact コマンドなど)
  • 前回のメジャーコンパクションから24時間 +/- 4.8時間 経過している
  • コンパクション対象のリージョンに、特別大きなストアファイルがなく、またその数が一定数よりも少ない場合

その他

  • コンパクション処理後にはスプリット出来るかどうかを確認して、できるようであればスプリットする
  • スプリット指示は、実際には強制スプリット指定でコンパクション指示を出している
  • 単体でのメジャーコンパクションはそんなに負荷にならなそう
  • MapReduceでデータ投入中にリージョン分割が起こるのは危険

つづきはTogetterで。

comments powered by Disqus

Twitter Icon

AdSense

Creative Commons License
このブログはクリエイティブ・コモンズでライセンスされています。
Powered by Movable Type 5.14-ja

Google検索

カスタム検索

2013年10月

    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31