SlideShare a Scribd company logo
1
A Benchmark Test on Presto, Spark
SQL and Hive on Tez for Medium Data
次世代システム研究室
GMO Internet
2
はじめに
 GMO Taxelのデータ解析・集計・ETL
 バッチ処理はメインで、リアルタイム性要求が普通だ(数分間~1時間内?)
 ハードウェアコストが抑えられたい(メモリ制限)
 Big Data SQLエンジン
 Hive (on MapReduce)
 Presto (Facebook)
 Spark SQL
 Hive on Tez
 Impala (Cloudera)
 Apache Drill (MapR), Tajo (LinkedIn)
 Benchmarkテストの実施方案
 TPC ベンチマーク (重い)
 UC BerkeleyのAMP LabのBig Data Benchmark + α
 https://amplab.cs.berkeley.edu/benchmark/
3
はじめに
 Presto
 In-memory computation
 Fast response time
 Spark SQL
 DAG, Schema RDD
 Yarn
 Hive on Tez
 MapReduce (Sequential) -> DAG (Network)
 Speed + Scale (TB to PB)
 Cost Based Optimizer
4
テスト環境
 Master Node: 3
 Slave Node: 5
 Hardware
 CPU: 4 vCore per Node
 Memory: 16 GB per Node
 Software
 HDP: HDP-2.2.6.0-2800
 Hadoop: HDFS 2.6.0.2.2
 YARN: 2.6.0.2.2
 Presto: Prest-0.86
 Spark SQL: Spark 1.2.1.2.2
 Tez: 0.5.2.2.2
 Hive: 0.14.0.2.2
 Java: 1.7.0
5
テストデータのスキーマ
6
テストデータ
No.
UserVisits
(Rows)
UserVisits
(Bytes)
Rankings
(Rows)
Rankings
(Bytes)
D1 15K 約3MB 1.2K 約80KB
D2 6.1M 約1GB 0.72M 約51MB
D3 61M 約10GB 7.2M 約500MB
D4 610M 約100GB 72M 約6GB
D5 1.22B 約200GB 144M 約12GB
ファイルFormat: ORC (Presto:RCFileもテストした)
ファイルCompression: Snappy
7
テストSQL
No. Query Description
Q1 SELECT pageURL, pageRank FROM rankings WHERE pageRank > X Scan Query
Q2
SELECT SUBSTR(sourceIP, 1, X), SUM(adRevenue) FROM uservisits GROUP BY
SUBSTR(sourceIP, 1, X)
Aggregation Query
Q3
SELECT sourceIP, totalRevenue, avgPageRank
FROM
(SELECT sourceIP,
AVG(pageRank) as avgPageRank,
SUM(adRevenue) as totalRevenue
FROM Rankings AS R, UserVisits AS UV
WHERE R.pageURL = UV.destURL
AND UV.visitDate BETWEEN Date('1980-01-01') AND Date('X')
GROUP BY UV.sourceIP)
ORDER BY totalRevenue DESC LIMIT 100
Join Query
Q4
SELECT destURL, adRevenue, visitDate FROM UserVisits ORDER BY adRevenue
DESC LIMIT 100
Sort Query
Q5
Insert overwrite table UserVisitsWithHighRevenue SELECT sourceIP, destURL,
adRevenue, visitDate FROM UserVisits WHERE adRevenue > X ORDER BY visitDate
Insert
8
Performance Overview
Data Case Mean Presto
(sec)
Spark SQL
(sec)
Hive on
Tez (sec)
Descriptio
n
Small-
Medium
Geometric 2.2 17.2 6.7 D1~D3,
Q1~Q4Arithmetic 5.2 32.1 15.8
Medium-
Large
Geometric 11.3 34.5 6.1 D3~D5,
Not Q3
and Q5Arithmetic 22.8 64.1 69.0
Large Geometric 36.5 79.1 11.8 D5,
Not Q3
and Q5Arithmetic 46.1 128.4 129.3
Total Geometric 4.4 26.3 22.4 D1~D5,
Q1~Q5*Arithmetic 14.5 49.5 437.7
*成功したQuery数: Presto=17, Spark SQL = 21, Hive on Tez = 25
9
Performance Overview
*成功したQuery数: Presto=17, Spark SQL = 21, Hive on Tez = 25
3.0 X 3.0 X 2.8 X
30.2 X
0.5 X 1.1 X 1.0 X
8.8 X
1.0 X 1.0 X 1.0 X 1.0 X
0.0
5.0
10.0
15.0
20.0
25.0
30.0
35.0
Small-Medium Medium-Large Large Total
倍
数
データサイズ
Hive On Tezに比べて何倍早いか
「算術平均」
Presto Spark SQL Hive on Tez
10
Performance Overview
*成功したQuery数: Presto=17, Spark SQL = 21, Hive on Tez = 25
3.0 X
0.5 X
0.3 X
5.1 X
0.4 X
0.2 X 0.1 X
0.9 X1.0 X 1.0 X 1.0 X 1.0 X
0.0
1.0
2.0
3.0
4.0
5.0
6.0
Small-Medium Medium-Large Large Total
倍
数
データサイズ
Hive On Tezに比べて何倍早いか
「幾何平均」
Presto Spark SQL Hive on Tez
11
Query on different data size
Q1 Q2 Q3 Q4 Q5
Spark SQL 5.9 15.3 15.9 6.5 16.6
Presto 3.2 2.4 1.0 0.2
Hive on Tez 2.0 8.7 7.4 6.0 9.8
5.9
15.3
15.9
6.5
16.6
3.2
2.4
1.0
0.2
2.0
8.7
7.4
6.0
9.8
0.0
2.0
4.0
6.0
8.0
10.0
12.0
14.0
16.0
18.0
実
行
時
間
(
秒
)
Query time On Data Set “D1” (15K records)
Spark SQL Presto Hive on Tez
12
Query on different data size
Q1 Q2 Q3 Q4 Q5
Spark SQL 7.2 28.0 50.9 11.3 35.1
Presto 0.3 3.1 29.2 0.8
Hive on Tez 1.9 17.3 18.1 11.6 44.5
7.2
28.0
50.9
11.3
35.1
0.3
3.1
29.2
0.81.9
17.3 18.1
11.6
44.5
0.0
10.0
20.0
30.0
40.0
50.0
60.0
実
行
時
間
(
秒
)
Query time On Data Set "D2" (6.1M records)
Spark SQL Presto Hive on Tez
13
Query on different data size
Q1 Q2 Q3 Q4 Q5
Spark SQL 7.3 33.5 189.9 13.5 80.6
Presto 3.5 7.2 6.5
Hive on Tez 0.0 29.0 72.4 15.6 372.2
7.3
33.5
189.9
13.5
80.6
3.5 7.2 6.50.0
29.0
72.4
15.6
372.2
0.0
50.0
100.0
150.0
200.0
250.0
300.0
350.0
400.0
実
行
時
間
(
秒
)
Query time On Data Set "D3" (61M records)
Spark SQL Presto Hive on Tez
14
Query on different data size
Q1 Q2 Q3 Q4 Q5
Spark SQL 10.9 75.9 51.0
Presto 0.6 28.6 20.8
Hive on Tez 0.0 129.7 539.4 58.8 2828.4
10.9 75.9 51.00.6 28.6 20.80.0
129.7
539.4
58.8
2828.4
0.0
500.0
1000.0
1500.0
2000.0
2500.0
3000.0
実
行
時
間
(
秒
)
Query time On Data Set "D4" (610M records)
Spark SQL Presto Hive on Tez
15
Query on different data size
Q1 Q2 Q3 Q4 Q5
Spark SQL 16.5 246.8 121.8
Presto 12.4 57.6 68.4
Hive on Tez 0.0 248.8 932.8 139.1 5449.6
16
247 12212 58 680
249
933
139
5,450
0
1000
2000
3000
4000
5000
6000
実
行
時
間
(
秒
)
Query time On Data Set "D5" (1.2B records)
Spark SQL Presto Hive on Tez
16
Performance over Memory & Nodes
5.9
38.8
12.7
4.8
19.3
12.5
18%
50%
2%
0%
10%
20%
30%
40%
50%
60%
0
5
10
15
20
25
30
35
40
45
Presto SparkSQL HoT
実
行
時
間
(
s
e
c
)
2GB 4GB 短縮比率
*Spark SQLの場合、Node数とメモリ両方が倍にしました
17
ORC vs RCFile over Presto
ORCテーブルはRCFileテーブルより約5倍早い
D2 D3 D4
RCFile 10.1 46.2 63.5
ORC 8.4 5.7 10.7
10.1
46.2
63.5
8.4
5.7
10.7
0
10
20
30
40
50
60
70
実
行
時
間
(
秒
)
ORC vs RCFile over Presto
RCFile ORC
*CoulderaはImpalaとPrestoをBenchmarkするとき、RCFileを使った!!
http://blog.cloudera.com/blog/2014/09/new-benchmarks-for-sql-on-hadoop-impala-1-4-widens-the-performance-gap/
18
結論
 Presto
 OOMが頻発、WorkerNodeがCrash
 Speed重視、メモリ十分
 Insert OverwriteがSupportされていない
 Spark SQL
 OOMが発生(別ノードでタスクをRetry)
 Speedが三者中に一番遅い
 Scalabilityがよい(リソースが倍にすると、処理スピードも倍になる)
 Hive on Tez
 SpeedがPrestoより遅いが、OOMが発生しない(メモリ要求が低い)
 Largeデータでも、安定して、全てのSQL実行を成功した(唯一)
 Cost Based Optimizer
 Scanクエリが異常に早いが、Insertが異常に遅い(Tuning?)
× Yarn
● Yarn
● Yarn
19
結論 – チューニング(Basic)
 Presto
 task.max-memory
 task.shard.max-threads (default: number of CPU cores * 4)
 JVM option: Xmx4G
 Spark SQL
 executor-memory, executor-cores, num-executors
 spark.sql.shuffle.partitions, spark.sql.codegen
 Hive on Tez
 Compute Stats
 hive.cbo.enable, hive.compute.query.using.stats, etc.
 tez.am.resource.memory.mb, tez.am.java.optsScan
20
• チューニング参照資料
– https://streever.atlassian.net/wiki/display/HADOOP/Hive+Performanc
e+Tips
– https://spark.apache.org/docs/latest/sql-programming-guide.html
– https://prestodb.io/docs/current/installation/deployment.html
– http://docs.hortonworks.com/HDPDocuments/HDP2/HDP-
2.1.1/bk_installing_manually_book/content/rpm-chap1-11.html
• Similar Benchmark Test
– http://blog.cloudera.com/blog/2014/09/new-benchmarks-for-sql-on-
hadoop-impala-1-4-widens-the-performance-gap/
– https://amplab.cs.berkeley.edu/benchmark/
– http://www.slideshare.net/hadoopxnttdata/sql-on-hadoop-201411

More Related Content

PDF
db tech showcase_2014_A14_Actian Vectorで得られる、BIにおける真のパフォーマンスとは
PDF
Treasure Dataを支える技術 - MessagePack編
PDF
Prestoで実現するインタラクティブクエリ - dbtech showcase 2014 Tokyo
PDF
Hiveを高速化するLLAP
PPTX
Struggle against crossdomain data complexity in Recruit Group
PDF
Hive on Spark を活用した高速データ分析 - Hadoop / Spark Conference Japan 2016
PDF
マルチテナント Hadoop クラスタのためのモニタリング Best Practice
PPTX
Hive on Spark の設計指針を読んでみた
db tech showcase_2014_A14_Actian Vectorで得られる、BIにおける真のパフォーマンスとは
Treasure Dataを支える技術 - MessagePack編
Prestoで実現するインタラクティブクエリ - dbtech showcase 2014 Tokyo
Hiveを高速化するLLAP
Struggle against crossdomain data complexity in Recruit Group
Hive on Spark を活用した高速データ分析 - Hadoop / Spark Conference Japan 2016
マルチテナント Hadoop クラスタのためのモニタリング Best Practice
Hive on Spark の設計指針を読んでみた

What's hot (20)

PDF
20190314 PGStrom Arrow_Fdw
PDF
Sparkによる GISデータを題材とした時系列データ処理 (Hadoop / Spark Conference Japan 2016 講演資料)
PPTX
sparksql-hive-bench-by-nec-hwx-at-hcj16
PDF
ゼロから始めるSparkSQL徹底活用!
PDF
Sparkパフォーマンス検証
PDF
Sparkストリーミング検証
PDF
Project Tungsten Bringing Spark Closer to Bare Meta (Hadoop / Spark Conferenc...
PDF
Evolution of Impala #hcj2014
PDF
20160121 データサイエンティスト協会 木曜セミナー #5
PPTX
The truth about SQL and Data Warehousing on Hadoop
PDF
Apache Hadoop & Hive 入門 (マーケティングデータ分析基盤技術勉強会)
PDF
最新版Hadoopクラスタを運用して得られたもの
PDF
今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC Enterprise
PDF
(LT)Spark and Cassandra
PPTX
HDFS Supportaiblity Improvements
PDF
Deep Dive into Spark SQL with Advanced Performance Tuning
PDF
Apache Hadoop の現在と将来(Hadoop / Spark Conference Japan 2016 キーノート講演資料)
PDF
hscj2019_ishizaki_public
PDF
20160220 MSのビッグデータ分析基盤 - データマイニング+WEB@東京
PDF
Hadoop Source Code Reading #17
20190314 PGStrom Arrow_Fdw
Sparkによる GISデータを題材とした時系列データ処理 (Hadoop / Spark Conference Japan 2016 講演資料)
sparksql-hive-bench-by-nec-hwx-at-hcj16
ゼロから始めるSparkSQL徹底活用!
Sparkパフォーマンス検証
Sparkストリーミング検証
Project Tungsten Bringing Spark Closer to Bare Meta (Hadoop / Spark Conferenc...
Evolution of Impala #hcj2014
20160121 データサイエンティスト協会 木曜セミナー #5
The truth about SQL and Data Warehousing on Hadoop
Apache Hadoop & Hive 入門 (マーケティングデータ分析基盤技術勉強会)
最新版Hadoopクラスタを運用して得られたもの
今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC Enterprise
(LT)Spark and Cassandra
HDFS Supportaiblity Improvements
Deep Dive into Spark SQL with Advanced Performance Tuning
Apache Hadoop の現在と将来(Hadoop / Spark Conference Japan 2016 キーノート講演資料)
hscj2019_ishizaki_public
20160220 MSのビッグデータ分析基盤 - データマイニング+WEB@東京
Hadoop Source Code Reading #17
Ad

Similar to A Benchmark Test on Presto, Spark Sql and Hive on Tez (20)

PDF
SQL on Hadoop 比較検証 【2014月11日における検証レポート】
PDF
ビッグデータ活用を加速する!分散SQLエンジン Spark SQL のご紹介 20161105 OSC Tokyo Fall
PDF
[db analytics showcase Sapporo 2017] B27:世界最速のAnalytic DBはHadoopの夢を見るか by 株式会...
PDF
HadoopとRDBMSをシームレスに連携させるSmart SQL Processing (Hadoop Conference Japan 2014)
PDF
[db tech showcase Tokyo 2017] C25: 世界最速のAnalytic DBがHadoopとタッグを組んだ! ~スケールアウト検...
PDF
QConTokyo2015「Sparkを用いたビッグデータ解析 〜後編〜」
PPTX
クラウドから始めるRのビッグデータ分析- Oracle R Enterprise in Cloud
PDF
Big Data University Tokyo Meetup #6 (mlwith_spark) 配布資料
PDF
[db tech showcase Tokyo 2014] D33: Prestoで実現するインタラクティブクエリ by トレジャーデータ株式会社 斉藤太郎
PPTX
大量のデータ処理や分析に使えるOSS Apache Spark入門(Open Source Conference 2021 Online/Kyoto 発表資料)
PDF
Spark SQL - The internal -
PPTX
Silkについて
PDF
9/16 Tokyo Apache Drill Meetup - drill vs sparksql
PDF
Apache Hiveの今とこれから
PDF
Hive-sub-second-sql-on-hadoop-public
PPTX
G-Tech2015 Hadoop/Sparkを中核としたビッグデータ基盤_20151006
PDF
2019.03.19 Deep Dive into Spark SQL with Advanced Performance Tuning
PDF
ほんとに使える?Big Data SQL検証結果から見る、その有益性(性能編)
PDF
Cloudera Impalaをサービスに組み込むときに苦労した話
PDF
0151209 Oracle DDD OracleとHadoop連携の勘所
SQL on Hadoop 比較検証 【2014月11日における検証レポート】
ビッグデータ活用を加速する!分散SQLエンジン Spark SQL のご紹介 20161105 OSC Tokyo Fall
[db analytics showcase Sapporo 2017] B27:世界最速のAnalytic DBはHadoopの夢を見るか by 株式会...
HadoopとRDBMSをシームレスに連携させるSmart SQL Processing (Hadoop Conference Japan 2014)
[db tech showcase Tokyo 2017] C25: 世界最速のAnalytic DBがHadoopとタッグを組んだ! ~スケールアウト検...
QConTokyo2015「Sparkを用いたビッグデータ解析 〜後編〜」
クラウドから始めるRのビッグデータ分析- Oracle R Enterprise in Cloud
Big Data University Tokyo Meetup #6 (mlwith_spark) 配布資料
[db tech showcase Tokyo 2014] D33: Prestoで実現するインタラクティブクエリ by トレジャーデータ株式会社 斉藤太郎
大量のデータ処理や分析に使えるOSS Apache Spark入門(Open Source Conference 2021 Online/Kyoto 発表資料)
Spark SQL - The internal -
Silkについて
9/16 Tokyo Apache Drill Meetup - drill vs sparksql
Apache Hiveの今とこれから
Hive-sub-second-sql-on-hadoop-public
G-Tech2015 Hadoop/Sparkを中核としたビッグデータ基盤_20151006
2019.03.19 Deep Dive into Spark SQL with Advanced Performance Tuning
ほんとに使える?Big Data SQL検証結果から見る、その有益性(性能編)
Cloudera Impalaをサービスに組み込むときに苦労した話
0151209 Oracle DDD OracleとHadoop連携の勘所
Ad

Recently uploaded (10)

PDF
商用ウェブカメラ市場:世界の産業現状、競合分析、シェア、規模、動向2025-2031年の予測
PDF
【QYResearch】人形ロボット産業の市場構造と今後の発展方向に関する分析レポート
PDF
XCMSを用いた質量分析データ処理_BioCAsia2021_yamamoto.pdf
PDF
Qlik TECH TALK セミナー:What's New In Qlik ~ 2025年7月リリース最新機能のご紹介
PDF
グローバルロープウェイ用スチールワイヤーロープ市場2025:主要企業のシェア、売上動向、競争戦略
PDF
【QYResearch】グローバルコネクタ市場の動向と将来展望に関する詳細な分析報告
PDF
細胞培養用バイオリアクターおよび発酵槽市場規模の成長見通し:2031年には2823百万米ドルに到達へ
PDF
限外ろ過膜調査レポート:市場規模、シェア、産業分析データ、最新動向2025-2031 YH Research
PDF
【QYResearch】グローバル農業機械市場の動向分析と成長戦略に関する総合調査報告
PDF
世界半導体用酸化ハフニウム市場のサプライチェーン解析:上流、下流、収益モデル分析2025-2031
商用ウェブカメラ市場:世界の産業現状、競合分析、シェア、規模、動向2025-2031年の予測
【QYResearch】人形ロボット産業の市場構造と今後の発展方向に関する分析レポート
XCMSを用いた質量分析データ処理_BioCAsia2021_yamamoto.pdf
Qlik TECH TALK セミナー:What's New In Qlik ~ 2025年7月リリース最新機能のご紹介
グローバルロープウェイ用スチールワイヤーロープ市場2025:主要企業のシェア、売上動向、競争戦略
【QYResearch】グローバルコネクタ市場の動向と将来展望に関する詳細な分析報告
細胞培養用バイオリアクターおよび発酵槽市場規模の成長見通し:2031年には2823百万米ドルに到達へ
限外ろ過膜調査レポート:市場規模、シェア、産業分析データ、最新動向2025-2031 YH Research
【QYResearch】グローバル農業機械市場の動向分析と成長戦略に関する総合調査報告
世界半導体用酸化ハフニウム市場のサプライチェーン解析:上流、下流、収益モデル分析2025-2031

A Benchmark Test on Presto, Spark Sql and Hive on Tez

  • 1. 1 A Benchmark Test on Presto, Spark SQL and Hive on Tez for Medium Data 次世代システム研究室 GMO Internet
  • 2. 2 はじめに  GMO Taxelのデータ解析・集計・ETL  バッチ処理はメインで、リアルタイム性要求が普通だ(数分間~1時間内?)  ハードウェアコストが抑えられたい(メモリ制限)  Big Data SQLエンジン  Hive (on MapReduce)  Presto (Facebook)  Spark SQL  Hive on Tez  Impala (Cloudera)  Apache Drill (MapR), Tajo (LinkedIn)  Benchmarkテストの実施方案  TPC ベンチマーク (重い)  UC BerkeleyのAMP LabのBig Data Benchmark + α  https://amplab.cs.berkeley.edu/benchmark/
  • 3. 3 はじめに  Presto  In-memory computation  Fast response time  Spark SQL  DAG, Schema RDD  Yarn  Hive on Tez  MapReduce (Sequential) -> DAG (Network)  Speed + Scale (TB to PB)  Cost Based Optimizer
  • 4. 4 テスト環境  Master Node: 3  Slave Node: 5  Hardware  CPU: 4 vCore per Node  Memory: 16 GB per Node  Software  HDP: HDP-2.2.6.0-2800  Hadoop: HDFS 2.6.0.2.2  YARN: 2.6.0.2.2  Presto: Prest-0.86  Spark SQL: Spark 1.2.1.2.2  Tez: 0.5.2.2.2  Hive: 0.14.0.2.2  Java: 1.7.0
  • 6. 6 テストデータ No. UserVisits (Rows) UserVisits (Bytes) Rankings (Rows) Rankings (Bytes) D1 15K 約3MB 1.2K 約80KB D2 6.1M 約1GB 0.72M 約51MB D3 61M 約10GB 7.2M 約500MB D4 610M 約100GB 72M 約6GB D5 1.22B 約200GB 144M 約12GB ファイルFormat: ORC (Presto:RCFileもテストした) ファイルCompression: Snappy
  • 7. 7 テストSQL No. Query Description Q1 SELECT pageURL, pageRank FROM rankings WHERE pageRank > X Scan Query Q2 SELECT SUBSTR(sourceIP, 1, X), SUM(adRevenue) FROM uservisits GROUP BY SUBSTR(sourceIP, 1, X) Aggregation Query Q3 SELECT sourceIP, totalRevenue, avgPageRank FROM (SELECT sourceIP, AVG(pageRank) as avgPageRank, SUM(adRevenue) as totalRevenue FROM Rankings AS R, UserVisits AS UV WHERE R.pageURL = UV.destURL AND UV.visitDate BETWEEN Date('1980-01-01') AND Date('X') GROUP BY UV.sourceIP) ORDER BY totalRevenue DESC LIMIT 100 Join Query Q4 SELECT destURL, adRevenue, visitDate FROM UserVisits ORDER BY adRevenue DESC LIMIT 100 Sort Query Q5 Insert overwrite table UserVisitsWithHighRevenue SELECT sourceIP, destURL, adRevenue, visitDate FROM UserVisits WHERE adRevenue > X ORDER BY visitDate Insert
  • 8. 8 Performance Overview Data Case Mean Presto (sec) Spark SQL (sec) Hive on Tez (sec) Descriptio n Small- Medium Geometric 2.2 17.2 6.7 D1~D3, Q1~Q4Arithmetic 5.2 32.1 15.8 Medium- Large Geometric 11.3 34.5 6.1 D3~D5, Not Q3 and Q5Arithmetic 22.8 64.1 69.0 Large Geometric 36.5 79.1 11.8 D5, Not Q3 and Q5Arithmetic 46.1 128.4 129.3 Total Geometric 4.4 26.3 22.4 D1~D5, Q1~Q5*Arithmetic 14.5 49.5 437.7 *成功したQuery数: Presto=17, Spark SQL = 21, Hive on Tez = 25
  • 9. 9 Performance Overview *成功したQuery数: Presto=17, Spark SQL = 21, Hive on Tez = 25 3.0 X 3.0 X 2.8 X 30.2 X 0.5 X 1.1 X 1.0 X 8.8 X 1.0 X 1.0 X 1.0 X 1.0 X 0.0 5.0 10.0 15.0 20.0 25.0 30.0 35.0 Small-Medium Medium-Large Large Total 倍 数 データサイズ Hive On Tezに比べて何倍早いか 「算術平均」 Presto Spark SQL Hive on Tez
  • 10. 10 Performance Overview *成功したQuery数: Presto=17, Spark SQL = 21, Hive on Tez = 25 3.0 X 0.5 X 0.3 X 5.1 X 0.4 X 0.2 X 0.1 X 0.9 X1.0 X 1.0 X 1.0 X 1.0 X 0.0 1.0 2.0 3.0 4.0 5.0 6.0 Small-Medium Medium-Large Large Total 倍 数 データサイズ Hive On Tezに比べて何倍早いか 「幾何平均」 Presto Spark SQL Hive on Tez
  • 11. 11 Query on different data size Q1 Q2 Q3 Q4 Q5 Spark SQL 5.9 15.3 15.9 6.5 16.6 Presto 3.2 2.4 1.0 0.2 Hive on Tez 2.0 8.7 7.4 6.0 9.8 5.9 15.3 15.9 6.5 16.6 3.2 2.4 1.0 0.2 2.0 8.7 7.4 6.0 9.8 0.0 2.0 4.0 6.0 8.0 10.0 12.0 14.0 16.0 18.0 実 行 時 間 ( 秒 ) Query time On Data Set “D1” (15K records) Spark SQL Presto Hive on Tez
  • 12. 12 Query on different data size Q1 Q2 Q3 Q4 Q5 Spark SQL 7.2 28.0 50.9 11.3 35.1 Presto 0.3 3.1 29.2 0.8 Hive on Tez 1.9 17.3 18.1 11.6 44.5 7.2 28.0 50.9 11.3 35.1 0.3 3.1 29.2 0.81.9 17.3 18.1 11.6 44.5 0.0 10.0 20.0 30.0 40.0 50.0 60.0 実 行 時 間 ( 秒 ) Query time On Data Set "D2" (6.1M records) Spark SQL Presto Hive on Tez
  • 13. 13 Query on different data size Q1 Q2 Q3 Q4 Q5 Spark SQL 7.3 33.5 189.9 13.5 80.6 Presto 3.5 7.2 6.5 Hive on Tez 0.0 29.0 72.4 15.6 372.2 7.3 33.5 189.9 13.5 80.6 3.5 7.2 6.50.0 29.0 72.4 15.6 372.2 0.0 50.0 100.0 150.0 200.0 250.0 300.0 350.0 400.0 実 行 時 間 ( 秒 ) Query time On Data Set "D3" (61M records) Spark SQL Presto Hive on Tez
  • 14. 14 Query on different data size Q1 Q2 Q3 Q4 Q5 Spark SQL 10.9 75.9 51.0 Presto 0.6 28.6 20.8 Hive on Tez 0.0 129.7 539.4 58.8 2828.4 10.9 75.9 51.00.6 28.6 20.80.0 129.7 539.4 58.8 2828.4 0.0 500.0 1000.0 1500.0 2000.0 2500.0 3000.0 実 行 時 間 ( 秒 ) Query time On Data Set "D4" (610M records) Spark SQL Presto Hive on Tez
  • 15. 15 Query on different data size Q1 Q2 Q3 Q4 Q5 Spark SQL 16.5 246.8 121.8 Presto 12.4 57.6 68.4 Hive on Tez 0.0 248.8 932.8 139.1 5449.6 16 247 12212 58 680 249 933 139 5,450 0 1000 2000 3000 4000 5000 6000 実 行 時 間 ( 秒 ) Query time On Data Set "D5" (1.2B records) Spark SQL Presto Hive on Tez
  • 16. 16 Performance over Memory & Nodes 5.9 38.8 12.7 4.8 19.3 12.5 18% 50% 2% 0% 10% 20% 30% 40% 50% 60% 0 5 10 15 20 25 30 35 40 45 Presto SparkSQL HoT 実 行 時 間 ( s e c ) 2GB 4GB 短縮比率 *Spark SQLの場合、Node数とメモリ両方が倍にしました
  • 17. 17 ORC vs RCFile over Presto ORCテーブルはRCFileテーブルより約5倍早い D2 D3 D4 RCFile 10.1 46.2 63.5 ORC 8.4 5.7 10.7 10.1 46.2 63.5 8.4 5.7 10.7 0 10 20 30 40 50 60 70 実 行 時 間 ( 秒 ) ORC vs RCFile over Presto RCFile ORC *CoulderaはImpalaとPrestoをBenchmarkするとき、RCFileを使った!! http://blog.cloudera.com/blog/2014/09/new-benchmarks-for-sql-on-hadoop-impala-1-4-widens-the-performance-gap/
  • 18. 18 結論  Presto  OOMが頻発、WorkerNodeがCrash  Speed重視、メモリ十分  Insert OverwriteがSupportされていない  Spark SQL  OOMが発生(別ノードでタスクをRetry)  Speedが三者中に一番遅い  Scalabilityがよい(リソースが倍にすると、処理スピードも倍になる)  Hive on Tez  SpeedがPrestoより遅いが、OOMが発生しない(メモリ要求が低い)  Largeデータでも、安定して、全てのSQL実行を成功した(唯一)  Cost Based Optimizer  Scanクエリが異常に早いが、Insertが異常に遅い(Tuning?) × Yarn ● Yarn ● Yarn
  • 19. 19 結論 – チューニング(Basic)  Presto  task.max-memory  task.shard.max-threads (default: number of CPU cores * 4)  JVM option: Xmx4G  Spark SQL  executor-memory, executor-cores, num-executors  spark.sql.shuffle.partitions, spark.sql.codegen  Hive on Tez  Compute Stats  hive.cbo.enable, hive.compute.query.using.stats, etc.  tez.am.resource.memory.mb, tez.am.java.optsScan
  • 20. 20 • チューニング参照資料 – https://streever.atlassian.net/wiki/display/HADOOP/Hive+Performanc e+Tips – https://spark.apache.org/docs/latest/sql-programming-guide.html – https://prestodb.io/docs/current/installation/deployment.html – http://docs.hortonworks.com/HDPDocuments/HDP2/HDP- 2.1.1/bk_installing_manually_book/content/rpm-chap1-11.html • Similar Benchmark Test – http://blog.cloudera.com/blog/2014/09/new-benchmarks-for-sql-on- hadoop-impala-1-4-widens-the-performance-gap/ – https://amplab.cs.berkeley.edu/benchmark/ – http://www.slideshare.net/hadoopxnttdata/sql-on-hadoop-201411