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

8,152 views

Published on

Hadoop MapReduceの処理速度より1桁速いと聞いて、早速自前のクラスタ環境で評価しました。

Published in: Technology
4 Comments
18 Likes
Statistics
Notes
No Downloads
Views
Total views
8,152
On SlideShare
0
From Embeds
0
Number of Embeds
124
Actions
Shares
0
Downloads
70
Comments
4
Likes
18
Embeds 0
No embeds

No notes for slide

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

  1. 1. Cloudera impalaの性能評価 (Hiveとの比較) 2012年11月2日 株式会社セラン R&D戦略室 須田幸憲 @sudabon
  2. 2. はじめに —  「impalaがHadoop MapReduceのHiveより1桁速い」(※)と聞 いて、普段業務にて使用しているHiveより本当に速いのかを検 証した—  普段の業務では… —  CDH3でHadoopクラスタを構築 —  WebのアクセスログをSnappyで圧縮してRCFileでHDFSに保存 —  Map処理出力とReduce処理出力も共にSnappyで圧縮 —  Thriftサービス経由でPHPからHiveでクエリを実行 ※出典 Cloudera Impala:Apache Hadoopで実現する、リアルのためのリア ルタイムクエリ
  3. 3. impala(v0.1.1)の概要 —  Cloudera社が開発したGoogle Dremelのオープンソース版—  リアルタイムなアドホッククエリをHadoop上で実行できる—  HDFSあるいはHBaseに保存されているデータが対象—  HiveQLと互換のクエリ言語をサポート—  ストレージエンジンとしてはTextFileとSequenceFileのみ—  SequenceFileはSnappy、Gzip、Bzip2で圧縮可能—  MapReduceではなく、専用の分散クエリエンジンを使用
  4. 4. 評価環境 —  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台
  5. 5. サーバの仕様 —  CPU —  合計2コアのIntel Xeon 1.6GHz(HTあり)—  メモリ —  4GB—  ディスク —  SASドライブ(rpmは不明)—  OS —  CentOS 6.2
  6. 6. 評価方法 —  クエリの応答時間比較 —  Hiveシェルとimpalaシェルでそれぞれ5回実行した平均値 —  クエリで処理するデータ —  約6,500万行のWebのアクセスログ(8ヶ月分) —  日付でパーティショニング —  カラム数は14個
  7. 7. 評価内容 —  使用したクエリ —  SELECT count(*) FROM table_name—  パラメータ —  ストレージフォーマット形式 —  TextFile、SequenceFile、RCFile(Hiveのみ) —  保存ファイルの圧縮形式 —  Gzip、Snappy —  MapReduce処理出力データの圧縮形式 —  Gzip、Snappy
  8. 8. 対象データ —  任意の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 %)
  9. 9. 評価結果(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 秒
  10. 10. 評価結果(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 秒
  11. 11. まとめ —  「impalaはHiveより1桁速く処理できる」は正しかった snappyで圧縮されたRCFileをHiveで処理すると約57秒 gzipで圧縮されたSequenceFileをimpalaで処理すると約8秒—  補足 —  仕様の詳細についてはリリースノートをご参照ください Cloudera Impala 1.0 Beta Release Notes
  12. 12. 追加評価
  13. 13. 評価内容 —  使用したクエリ —  SELECT count(*) FROM table_name WHERE column = ‘xxxx’—  パラメータ —  ストレージフォーマット形式 —  Hive ⇒ RCFile —  impala ⇒ SequenceFile —  保存ファイルの圧縮形式 —  Hive ⇒ Gzip —  impala ⇒ Gzip、Snappy —  MapReduce処理出力データの圧縮形式(Hiveのみ) —  Snappy
  14. 14. 評価結果 —  Hive(単位は秒) ファイル圧縮 MR出力圧縮 RCFile Snappy Snappy 60.574 (100 %) —  impala(単位は秒) ファイル圧縮 SequenceFile Gzip 22.960 (26.4 %) Snappy 14.679 (23.2 %) —  文字列一致検索の処理時間も 約23% に短縮
  15. 15. まとめ —  全数カウントだけでなく、文字列一致検索でも処理時間が 約1/4に短縮された snappyで圧縮されたRCFileをHiveで処理すると約61秒 snappyで圧縮されたSequenceFileをimpalaで処理すると約15秒—  ただし、全数カウントの場合はgzipで圧縮された SequenceFileの場合が最速であったが、文字列一致検 索の場合はgzipよりもsnappyで圧縮されたSequnceFile の方が速かった
  16. 16. フィードバック —  記載内容に不備等がございましたら、下記連絡先までご連 絡いただけますと、幸甚です。—  質問等もお気軽にご連絡ください。可能な範囲で返信いた します。—  連絡先 —  メール: sudabon at gmail dot com —  Twitter: @sudabon
  17. 17. 変更履歴 —  2012年11月2日 初版—  2012年11月5日 追加評価を追記

×