cloudera impalaの性能評価(hiveとの比較)

17
Cloudera impalaの性能評価 Hiveとの比較) 2012112株式会社セラン R&D戦略室 須田幸憲 @sudabon

Upload: yukinori-suda

Post on 14-Jun-2015

6.183 views

Category:

Technology


0 download

DESCRIPTION

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

TRANSCRIPT

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

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

2012年11月2日 株式会社セラン R&D戦略室

須田幸憲 @sudabon

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

はじめに �  「impalaがHadoop MapReduceのHiveより1桁速い」(※)と聞

いて、普段業務にて使用しているHiveより本当に速いのかを検証した

�  普段の業務では… �  CDH3でHadoopクラスタを構築 �  WebのアクセスログをSnappyで圧縮してRCFileでHDFSに保存 �  Map処理出力とReduce処理出力も共にSnappyで圧縮 �  Thriftサービス経由でPHPからHiveでクエリを実行

※出典 Cloudera Impala:Apache Hadoopで実現する、リアルのためのリアルタイムクエリ

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

impala(v0.1.1)の概要 �  Cloudera社が開発したGoogle Dremelのオープンソース版

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

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

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

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

�  SequenceFileはSnappy、Gzip、Bzip2で圧縮可能

�  MapReduceではなく、専用の分散クエリエンジンを使用

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

評価環境 �  Cloudera Manager Free Edition 4.1.0

スレーブ4台 マスター1台

・HDFS NameNode SecondaryNameNode

・MapReduce JobTracker

・impala impalad Impala-state-store

・HDFS DataNode

・MapReduce TaskTracker

・impala impalad

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

サーバの仕様 �  CPU

�  合計2コアのIntel Xeon 1.6GHz(HTあり)

�  メモリ �  4GB

�  ディスク �  SASドライブ(rpmは不明)

�  OS �  CentOS 6.2

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

評価方法 �  クエリの応答時間比較

�  Hiveシェルとimpalaシェルでそれぞれ5回実行した平均値

�  クエリで処理するデータ �  約6,500万行のWebのアクセスログ(8ヶ月分) �  日付でパーティショニング �  カラム数は14個

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

評価内容 �  使用したクエリ

�  SELECT count(*) FROM table_name

�  パラメータ �  ストレージフォーマット形式

�  TextFile、SequenceFile、RCFile(Hiveのみ)

�  保存ファイルの圧縮形式 �  Gzip、Snappy

�  MapReduce処理出力データの圧縮形式 �  Gzip、Snappy

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

対象データ �  任意の1日分のファイルサイズ

ファイル圧縮 TextFile SequnceFile RCFile

非圧縮 37.88 MB (100 %)

40.69 MB (107.4 %)

36.01 MB (95.1 %)

Gzip 2.47 MB (6.5 %)

3.07 MB (8.1 %)

2.84 MB (7.5 %)

Snappy 6.72 MB (17.7 %)

7.49 MB (19.8 %)

6.00 MB (15.8 %)

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

評価結果(MR + Hive)

ファイル圧縮 MR出力圧縮 TextFile SequenceFile RCFile

非圧縮 非圧縮 135.913 (100 %)

157.042 (116 %)

126.626 (93.2 %)

Gzip Gzip 238.876 (176 %)

169.675 (125 %)

計測不可

Snappy Snappy 239.201 (176 %)

65.055 (47.9 %)

57.173 (42.1 %)

�  単位は秒

ターゲットタイムは 57.173 秒

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

評価結果(impala)

ファイル圧縮 TextFile SequenceFile

非圧縮 73.422 (54.0 %)

88.422 (65.1 %)

Gzip 計測なし 8.284 (6.1 %)

Snappy 計測なし 15.099 (11.1 %)

�  単位は秒

�  最速平均値はGzipの場合で 8.284 秒

�  ちなみにGzipの最速実測値は 7.232 秒

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

まとめ �  「impalaはHiveより1桁速く処理できる」は正しかった

snappyで圧縮されたRCFileをHiveで処理すると約57秒

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

�  補足 �  仕様の詳細についてはリリースノートをご参照ください

Cloudera Impala 1.0 Beta Release Notes

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

追加評価

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

評価内容 �  使用したクエリ

�  SELECT count(*) FROM table_name WHERE column = ‘xxxx’

�  パラメータ �  ストレージフォーマット形式

�  Hive ⇒ RCFile �  impala ⇒ SequenceFile

�  保存ファイルの圧縮形式 �  Hive ⇒ Gzip �  impala ⇒ Gzip、Snappy

�  MapReduce処理出力データの圧縮形式(Hiveのみ) �  Snappy

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

�  Hive(単位は秒)

�  impala(単位は秒)

�  文字列一致検索の処理時間も 約23% に短縮

評価結果

ファイル圧縮 MR出力圧縮 RCFile

Snappy Snappy 60.574 (100 %)

ファイル圧縮 SequenceFile

Gzip 22.960 (26.4 %)

Snappy 14.679 (23.2 %)

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

まとめ �  全数カウントだけでなく、文字列一致検索でも処理時間が

約1/4に短縮された snappyで圧縮されたRCFileをHiveで処理すると約61秒

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

�  ただし、全数カウントの場合はgzipで圧縮されたSequenceFileの場合が最速であったが、文字列一致検索の場合はgzipよりもsnappyで圧縮されたSequnceFileの方が速かった

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

フィードバック �  記載内容に不備等がございましたら、下記連絡先までご連

絡いただけますと、幸甚です。

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

�  連絡先 �  メール: sudabon at gmail dot com

�  Twitter: @sudabon

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

変更履歴 �  2012年11月2日 初版

�  2012年11月5日 追加評価を追記