7. TeraSort 50GB
• MapReduce 22m34.220s
• Tez 14m52.593s
• Spark [ポーティング中]
• spark-perf is good place to port
• https://github.com/rxin/spark/blob/terasort/examples/
src/main/scala/org/apache/spark/examples/terasort/
TeraSort.scala
8. Wordcount 20GB
• MapReduce 11m13.173s
• Tez 7m19.763s
• Spark 4m 17s
• Spark is too fast … why?
9. Benchmark comparision
• MapReduce and Tez
• bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-
2.5.1.jar terasort -Dmapreduce.job.reduces=16
teragenInput50G out
• Spark
• sc.textFile("hdfs:///user/ozawa/wordcountInput20G")
.flatMap(line => line.split(" "))
.map(word => (word, 1)).persist()
.reduceByKey((a, b) => a + b, 16)
.saveAsTextFile(“hdfs:///user/ozawa/sparkWordcountOutNew1");
• Checking reduceByKey
14. Spark on Tez
• Allow for pluggable execution contexts in
Spark
• https://issues.apache.org/jira/browse/
SPARK-3561
• Exposing Spark API to everyone :-)
• http://hortonworks.com/blog/improving-spark-
data-pipelines-native-yarn-integration/
15. アーキテクチャ
Spark API (SparkContext)
Disk-based RDD
on Tez
In-memory RDD
on Spark
16. Why do so?
• ユーザ面の利点
• Tez は Disk に最適化されているので,ディスクベースのワー
クロードで高速に動作する…かも?
• YARN の機能を利用することでマルチユーザ環境で高いス
ループットを実現
• ベンチマーク視点で見ると…
• API が合うのでフェアなベンチマークが可能になるかも
• https://github.com/hortonworks/spark-native-yarn