Cloudera impalaの性能評価
     (Hiveとの比較)	
       2012年11月2日
     株式会社セラン R&D戦略室
          須田幸憲
         @sudabon
はじめに	
—  「impalaがHadoop MapReduceのHiveより1桁速い」(※)と聞
 いて、普段業務にて使用しているHiveより本当に速いのかを検
 証した
—  普段の業務では…
 —    CDH3でHadoopクラスタを構築
 —    WebのアクセスログをSnappyで圧縮してRCFileでHDFSに保存
 —    Map処理出力とReduce処理出力も共にSnappyで圧縮
 —    Thriftサービス経由でPHPからHiveでクエリを実行	


※出典
 Cloudera Impala:Apache Hadoopで実現する、リアルのためのリア
 ルタイムクエリ
impala(v0.1.1)の概要	
—  Cloudera社が開発したGoogle Dremelのオープンソース版

—  リアルタイムなアドホッククエリをHadoop上で実行できる

—  HDFSあるいはHBaseに保存されているデータが対象

—  HiveQLと互換のクエリ言語をサポート

—  ストレージエンジンとしてはTextFileとSequenceFileのみ

—  SequenceFileはSnappy、Gzip、Bzip2で圧縮可能

—  MapReduceではなく、専用の分散クエリエンジンを使用
評価環境	
  —  Cloudera Manager Free Edition 4.1.0




・HDFS
    NameNode                                ・HDFS
    SecondaryNameNode                           DataNode
・MapReduce                                  ・MapReduce
    JobTracker                                  TaskTracker
・impala                                     ・impala
    impalad                                     impalad
    Impala-state-store	

          マスター1台	
             スレーブ4台
サーバの仕様	
—  CPU
  —  合計2コアのIntel Xeon 1.6GHz(HTあり)

—  メモリ
  —  4GB
—  ディスク
  —  SASドライブ(rpmは不明)
—  OS
  —  CentOS 6.2
評価方法	
—  クエリの応答時間比較
 —  Hiveシェルとimpalaシェルでそれぞれ5回実行した平均値	

—  クエリで処理するデータ
 —  約6,500万行のWebのアクセスログ(8ヶ月分)
 —  日付でパーティショニング
 —  カラム数は14個
評価内容	
—  使用したクエリ
 —  SELECT count(*) FROM table_name

—  パラメータ
 —  ストレージフォーマット形式
     —  TextFile、SequenceFile、RCFile(Hiveのみ)
 —  保存ファイルの圧縮形式
     —  Gzip、Snappy
 —  MapReduce処理出力データの圧縮形式
     —  Gzip、Snappy
対象データ	
—  任意の1日分のファイルサイズ
 ファイル圧縮	
    TextFile	
   SequnceFile	
    RCFile	
   非圧縮	
     37.88 MB     40.69 MB        36.01 MB
             (100 %)	
    (107.4 %)	
     (95.1 %)	

   Gzip	
    2.47 MB       3.07 MB        2.84 MB
             (6.5 %)	
     (8.1 %)	
      (7.5 %)

  Snappy	
   6.72 MB       7.49 MB        6.00 MB
             (17.7 %)	
    (19.8 %)	
     (15.8 %)
評価結果(MR + Hive)	
—  単位は秒
ファイル圧縮	
    MR出力圧縮	
    TextFile	
   SequenceFile	
    RCFile	
 非圧縮	
       非圧縮	
      135.913        157.042        126.626
                        (100 %)	
      (116 %)        (93.2 %)	
  Gzip	
      Gzip	
    238.876        169.675        計測不可	
                        (176 %)	
      (125 %)	
 Snappy	
    Snappy	
   239.201         65.055         57.173
                        (176 %)	
      (47.9 %)	
     (42.1 %)	

ターゲットタイムは 57.173 秒
評価結果(impala)	
—  単位は秒
   ファイル圧縮	
     TextFile	
    SequenceFile	
    非圧縮	
        73.422          88.422
                (54.0 %)	
      (65.1 %)	
     Gzip	
      計測なし	
          8.284
                                (6.1 %)	
    Snappy	
     計測なし	
          15.099
                                (11.1 %)	

—  最速平均値はGzipの場合で 8.284 秒
—  ちなみにGzipの最速実測値は 7.232 秒
まとめ	
—  「impalaはHiveより1桁速く処理できる」は正しかった
 snappyで圧縮されたRCFileをHiveで処理すると約57秒



  gzipで圧縮されたSequenceFileをimpalaで処理すると約8秒



—  補足
  —  仕様の詳細についてはリリースノートをご参照ください
   Cloudera Impala 1.0 Beta Release Notes
追加評価
評価内容	
—  使用したクエリ
 —  SELECT count(*) FROM table_name WHERE column =
   ‘xxxx’

—  パラメータ
 —  ストレージフォーマット形式
     —  Hive ⇒ RCFile
     —  impala ⇒ SequenceFile
 —  保存ファイルの圧縮形式
     —  Hive ⇒ Gzip
     —  impala ⇒ Gzip、Snappy
 —  MapReduce処理出力データの圧縮形式(Hiveのみ)
     —  Snappy
評価結果	
—  Hive(単位は秒)
     ファイル圧縮	
          MR出力圧縮	
             RCFile	
      Snappy	
          Snappy	
            60.574
                                           (100 %)	

—  impala(単位は秒)
         ファイル圧縮	
                  SequenceFile	
             Gzip	
                   22.960
                                     (26.4 %)	
           Snappy	
                   14.679
                                     (23.2 %)	

—  文字列一致検索の処理時間も 約23% に短縮
まとめ	
—  全数カウントだけでなく、文字列一致検索でも処理時間が
 約1/4に短縮された
 snappyで圧縮されたRCFileをHiveで処理すると約61秒



 snappyで圧縮されたSequenceFileをimpalaで処理すると約15秒

—  ただし、全数カウントの場合はgzipで圧縮された
 SequenceFileの場合が最速であったが、文字列一致検
 索の場合はgzipよりもsnappyで圧縮されたSequnceFile
 の方が速かった
フィードバック	
—  記載内容に不備等がございましたら、下記連絡先までご連
 絡いただけますと、幸甚です。

—  質問等もお気軽にご連絡ください。可能な範囲で返信いた
 します。



—  連絡先
 —  メール: sudabon at gmail dot com
 —  Twitter: @sudabon
変更履歴	
—  2012年11月2日 初版
—  2012年11月5日 追加評価を追記

Cloudera impalaの性能評価(Hiveとの比較)