More Related Content
Similar to SQL on Hadoop 比較検証 【2014月11日における検証レポート】 (20)
More from NTT DATA OSS Professional Services (20)
SQL on Hadoop 比較検証 【2014月11日における検証レポート】
- 1. 1Copyright © 2014 NTT DATA Corporation
株式会社 NTTデータ
安達 仁
SQL on Hadoop の比較検証
~ Clouderaレポートを追試してみました ~
- 2. 2Copyright © 2014 NTT DATA Corporation
自己紹介
氏名
安達 仁(あだち じん)
email: adachij@nttdata.co.jp
所属
NTTデータ 基盤システム事業本部 OSSプロフェッショナルサービス
OSSのサポートサービス、構築・運用支援を担当
- 徹底的に検証・評価したOSSの組み合わせ、設定・運用のノウハウの提供
- 高品質なシステム基盤を実現する仕組みの整備
- 幅広いOSSを対象とするプロフェッショナルサービスの提供
- NTT持株会社 OSSセンタとも連携
NTTデータのHadoopソリューション
2010年7月、Hadoopの構築・運用ソリューションを提供開始
- http://oss.nttdata.co.jp/hadoop/bxshs.html
- コンサルティング、評価支援、構築、サポート、教育
所属部署には 「Hadoop徹底入門」「HADOOP HACKS」 の著者が複数在籍
- その片隅で働いてます。(^^ゞ
- 4. 4Copyright © 2014 NTT DATA Corporation
SQL on Hadoop
(今回の)SQL on Hadoopの定義
たくさんのSQL on Hadoop
Impala
- Clouderaが開発
- 2012/10にパブリックベータがリリースされており、SQL on Hadoopの走り
- 今回の主役?
Presto
- Facebookが開発
- 2013/11に公開された新しいSQL on Hadoopで開発が活発
Hive on Tez
- Hortonworksが主導
- Tez:YARN上で動作するFW
- 他のSQL on Hadoopと異なり、Hiveの後継
その他、LinkedIn Tajo、MapR Drillなど
Hadoop上で動作するSQL実行基盤
低レイテンシなクエリ処理に使える
HDFS上のデータを透過的に扱える
検証対象
- 5. 5Copyright © 2014 NTT DATA Corporation
ベンダが提示するベンチマークの結果は信用できないものが多い
特殊なチューニング
自社に有利な検証環境
リソース情報なし
Impala
「TPC-DSのクエリ全体平均で、Hiveの24倍速い」(*1)
Presto
「Hiveの10倍速い」(*2)
Hive on Tez
「TPC-DSのインタラクティブクエリ平均で、Hiveの66倍速い」(*3)
検証の経緯
謳い文句どおりか追試してみました
*1 http://blog.cloudera.com/blog/2014/01/impala-performance-dbms-class-speed
*2 https://www.facebook.com/notes/facebook-engineering/presto-interacting-with-petabytes-of-data-at-facebook/10151786197628920
*3 http://hortonworks.com/blog/benchmarking-apache-hive-13-enterprise-hadoop
本当?
- 6. 6Copyright © 2014 NTT DATA Corporation
単に追試するだけでなく、以下の項目を追加した
データサイズを変えて検証
- 数GB~数TB
リソースの使用状況を取得
- CPU、メモリ、ネットワーク、HDD
小規模クラスタ
クエリの改修
Impalaでしか動作しないクエリをPresto、 Hive on Tez向けに修正
- WHERE句でのJOINなど
数100GBのデータロードに失敗する
- パーティションを分割してロードするスクリプトを作成
ノーチューニング
Cloudera Manager、Ambariの設定を使用
- ヒープサイズのみ変更
- ファイルフォーマット、圧縮形式はオススメを利用
– ImpalaはParquet(Snappy)、PrestoおよびHive on TezはORC(zlib)を使用
検証への追加
Tips
- 7. 7Copyright © 2014 NTT DATA Corporation
検証環境(1/2)
TPC-DSを使用したベンチマークを実施
ClouderaのImpalaレポート(*1)が元ネタ
大規模小売業のオペレーションを想定したクエリ
データサイズを複数用意
small(数GB)、medium(数10GB)、large(数100GB)、xlarge(数TB)
ファイルフォーマット、圧縮形式によりサイズが異なる
ハードウェア構成
マスタ x1、スレーブ x3、クライアント x1
スペックはすべて同じ
種別 型番
マシン Dell PowerEdge R520
CPU Xeon(R) CPU E5-2407 @ 2.20GHz x 2
メモリ DIMM DDR3 Synchronous 1333 MHz 8GB x 8
ディスク Western Digital WD2000FYYX 2TB x 4
ネットワーク Intel Ethernet Controller 10-Gigabit X540-AT2
*1 http://blog.cloudera.com/blog/2014/05/new-sql-choices-in-the-apache-hadoop-ecosystem-why-impala-continues-to-lead/
- 8. 8Copyright © 2014 NTT DATA Corporation
検証環境(2/2)
ソフトウェア構成
Impala、Presto
Hive on Tez
Hadoopディストリビューションは複数使用
ImpalaはCDH 5.0に付属
PrestoはCDHと組み合わせて動作させる
Hive on TezはHDP 2.1に付属
Tezの利用にHive 0.13が必須のため
ソフトウェア バージョン ファイルフォーマット 圧縮形式
CDH 5.0.2 - -
Hive(比較元) 0.12 ORC zlib
Impala 1.3.1 Parquet Snappy
Presto 0.69 ORC zlib
ソフトウェア バージョン ファイルフォーマット 圧縮形式
HDP 2.1.4 - -
Hive 0.13 ORC zlib
Tez 0.4 - -
- 10. 10Copyright © 2014 NTT DATA Corporation
はじめに
ベンチマーク
TPC-DSはオンライン処理のベンチマーク
検証の趣旨と合致するが、ETLでは結果が異なることが予想される
HWのスペック
Impalaのことを考えるなら、メモリをもっと積んだほうがよい
しかし、Hadoopに合わせるなら、64GBは妥当なところでは
ディスク容量の都合で、TB以上の検証ができていない
SWのバージョン
各プロダクトのバージョンが若干古い(すみません...)
CDH 5.2でImpala 2.0が入った
Prestoは週替りのリリースで0.79まで進んだ
HDP 2.2のリリースがそろそろ。Hive 0.14、Tez 0.60が入る
各プロダクトとも活発に開発が進められているため、
すぐに検証結果が古くなる
[参考]Impalaレポートは
384GB
- 11. 11Copyright © 2014 NTT DATA Corporation
性能検証(1/4)
ベンチマーク結果(small)
Parquet+Snappy:5.1GB、ORC+zlib:3.4GB
メモリに乗るサイズ
全クエリ中央値の速度比較(対Hive)
Impala:34.0倍
Presto:11.7倍
Tez:2.1倍
いずれも速い
0
50
100
150
200
250
300
350
400
Hive(ORC)
Impala(Parquet)
Presto(ORC)
Hive on Tez(ORC)
単位:秒
- 12. 12Copyright © 2014 NTT DATA Corporation
性能検証(2/4)
ベンチマーク結果(medium)
Parquet+Snappy:47.9GB、ORC+zlib:33.6GB
メモリに乗るサイズ
全クエリ中央値の速度比較(対Hive)
Impala:21.9倍
Presto:3.3倍
Tez:2.9倍 smallより速い
0
500
1000
1500
2000
2500
3000
3500
4000
Hive(ORC)
Impala(Parquet)
Presto(ORC)
Hive on Tez(ORC)
極端に遅い
(※後述)
smallより遅い
単位:秒
- 13. 13Copyright © 2014 NTT DATA Corporation
性能検証(3/4)
ベンチマーク結果(large)
Parquet+Snappy:433.1GB、ORC+zlib:335.9GB
メモリに乗らないサイズ
全クエリ中央値の速度比較(対Hive)
Impala:12.7倍
Presto:2.0倍(※成功したクエリのみ)
Tez:2.6倍
mediumより遅い
smallより速い
0
1000
2000
3000
4000
5000
6000
7000
Hive(ORC)
Impala(Parquet)
Presto(ORC)
Hive on Tez(ORC)
q3、q19、q43、q53、
q63、q65、q89でクエリ
失敗
単位:秒
- 14. 14Copyright © 2014 NTT DATA Corporation
性能検証(4/4)
ベンチマーク結果(xlarge)
Parquet+Snappy:1.2TB、ORC+zlib:1TB
メモリに乗らないサイズ
全クエリ合計時間の速度比較(対Hive)
Impala:9.3倍
Presto:0.9倍(※成功したクエリのみ)
Tez:2.3倍
largeより遅い
安定した速度
0
2000
4000
6000
8000
10000
12000
14000
16000
Hive(ORC)
Impala(Parquet)
Presto(ORC)
Hive on Tez(ORC)
q3、q19、q42、q43、
q52、q53、q55、q63、
q89でクエリ失敗
Hiveより遅い
単位:秒
- 15. 15Copyright © 2014 NTT DATA Corporation
性能検証(まとめ)
ベンチマーク結果
対Hiveの速度比(サイズ別全クエリ平均)
Impara、Prestoは確かに速いが...
データサイズの増加に合わせて、パフォーマンスが劣化する(※後述)
Prestoは最小のデータサイズでのみ、パフォーマンスがよい
Hive on Tezはデータサイズによらず一定のパフォーマンスを発揮している
0.0倍
5.0倍
10.0倍
15.0倍
20.0倍
25.0倍
30.0倍
35.0倍
small medium large xlarge
Hive
Impala
Presto
Tez
- 17. 17Copyright © 2014 NTT DATA Corporation
Impalaが遅くなるパターン
リソース利用状況(largeとxlargeのq59)
スワップが発生してパフォーマンスが劣化している
CPU、メモリ
100%使い切る。が、Impalaでは通常の動作
スワップ
largeとxlarge(メモリに乗り切らないサイズ)で発生する
HDD、ネットワークは問題なし
xlargeのスワップlargeのスワップ
xlargeのCPU xlargeのメモリ
- 18. 18Copyright © 2014 NTT DATA Corporation
Prestoが極端に遅くなるパターン
リソース利用状況(medium、q65)
完全にリソースを使い切った場合はクエリが失敗するが、遅くなりながら完走する
CPU
使用率が10%から100%を上下する
ネットワーク
マスタのネットワークが3~5MB/秒を上下する
スレーブのネットワークは問題なし
メモリ、HDD、スワップは問題なし
CPU使用率が乱
高下
マスタのネットワークが
乱高下
- 19. 19Copyright © 2014 NTT DATA Corporation
リソース利用状況(xlarge、q65)
small~xlargeまでCPU、メモリ、HDD、ネットワークをまんべんなく使う
CPU、メモリ
使用率は100%付近
HDD、ネットワーク
理論値の20~40%程度
ネットワークの負荷は終盤に集中
Hive on Tezはデータサイズによらない
xlargeのCPU xlargeのメモリ
xlargeのHDD xlargeのネットワーク
- 20. 20Copyright © 2014 NTT DATA Corporation
まとめ
Impala、Presto、Hive on Tezを比較した
Impala
今回の検証結果では最もよい結果となった
データサイズが大きくなるとメモリに乗るサイズでも性能が落ちる
Impala 2.0の「spill to disk」に期待
Presto
今回は残念な結果となった
データサイズが総メモリ量を超えると動作しないクエリが出てくる
頻繁なアップデート(2週間に1回程度)があるので将来に期待
Hive on Tez
安定したパフォーマンスを発揮した
対障害性などHiveの特徴を引き継ぎながら、数倍の性能向上
ただ、データサイズが小さい時はもっと速くなってほしい
CBO(コストベースオプティマイザ)を有効にするなど、少しのチューニングで大きく伸
びるかも
- 21. Copyright © 2011 NTT DATA Corporation
Copyright © 2014 NTT DATA Corporation
お問い合わせ先:
株式会社NTTデータ 基盤システム事業本部
OSSプロフェッショナルサービス
URL: http://oss.nttdata.co.jp/hadoop
メール: hadoop@kits.nttdata.co.jp TEL: 050-5546-2496