リピさんとオザさんのTezとSparkの会話

repeatedlyさんとoza_x86さんのTezとSparkに関する会話をまとめさせていただきました。
4
SKS rep @repeatedly

Tezって実際どこまで行けるんだろ?Sparkに比べてunmatureなのは確かだけど,試してみては?と言えるレベルなんだろうか

2014-09-09 15:13:43
SKS rep @repeatedly

@oza_x86 TezとSparkって同じDAGだと思うんだけど,なんか実行モデルそのものに大きな違いってある?裏がRDDじゃないかそうでないかとか,そんな感じ?

2014-09-09 15:37:13
oza @oza_x86

@repeatedly 実行モデルはだいたい一緒. 抽象化の仕方が RDD か否かの違い. RDD って実体考えると Collection API なので、API が違うという話になる.

2014-09-09 15:41:46
SKS rep @repeatedly

@oza_x86 ふーむ.現状だとSparkの方が高速に動作する,という認識なんだけど,TezとしてはそこはTODOという話?それともすでに追いつく算段は出来ている?

2014-09-09 15:43:00
oza @oza_x86

@repeatedly 機能的な面では、Tez は実行時に統計情報のとれる API がついてるので、それを基に DAG を rewriting ができる. 例えば、reducer の数を runtime に統計情報から自動的に決めることができる. これは現状のSparkでは無理.

2014-09-09 15:43:32
oza @oza_x86

@repeatedly ほう、ベンチマークでてるの?

2014-09-09 15:44:33
SKS rep @repeatedly

@oza_x86 いや,これ.どこまで信じていいのか分かってないんだけど > amplab.cs.berkeley.edu/benchmark/

2014-09-09 15:45:13
oza @oza_x86

@repeatedly まだベンチマークとってないから確信はしてないんだけど、わたしの認識では、ディスクに触り始めると Tez の方が速いと思う. 中間ファイルの形式に RLE 採用してるから. issues.apache.org/jira/plugins/s…

2014-09-09 15:47:12
oza @oza_x86

@repeatedly ソフトウェアのバージョンが古いから、これを根拠にするのはちょっとな、って感じ.

2014-09-09 15:48:24
SKS rep @repeatedly

@oza_x86 ディスクに触るかどうかというのは,データ量の話?全部オンメモリでTezが勝てないのはなにゆえ?

2014-09-09 15:50:58
oza @oza_x86

@repeatedly そう、データ量の話. RDD はメモリ内部で Java オブジェクトそのままキャッシュする機能があるよね. あれはメモリ効率悪いけど CPU intensive なベンチマークには強い. Ser/Deser を全てすっ飛ばせるから.

2014-09-09 15:54:01
SKS rep @repeatedly

@oza_x86 つまり,Spillするようにして動作させる場合にはTezの方が速くて,全部オンメモリでやる場合にはSparkは色々とすっ飛ばしているので,その分パフォーマンスが稼げていると言う話?

2014-09-09 15:57:50
oza @oza_x86

@repeatedly Yes.まだベンチマークとれてないから予測の域だけどね.その辺りを根拠に,今のところは Spark は a framework for in-memory computing だと思ってる.

2014-09-09 15:59:05
SKS rep @repeatedly

@oza_x86 I see. Thanks! あと一つ確認なんだけど,TezのDAGというのはMRを分解してのDAGという理解で良いよね?Sparkの方はMRとかがないし,どちらかというとPrestoとかに近いと思っているのだけども

2014-09-09 16:01:48
oza @oza_x86

@repeatedly MR を分解って何だろ.Spark にも Shuffle はあるし,Tez でも map{}.map{} みたいのはできるよ.

2014-09-09 16:04:24
SKS rep @repeatedly

@oza_x86 いや,こんな図があったから,これが便宜上MRで表しているのか,実際の実行モデルは一ステージみたいになっているのか,というのがよくわかってない > slideshare.net/Hadoop_Summit/…

2014-09-09 16:05:41
oza @oza_x86

@repeatedly MapReduce 分かってるユーザ向けに,便宜上この説明をしてると思う.実際は Spark のステージみたいになってる.

2014-09-09 16:08:50
SKS rep @repeatedly

@oza_x86 なるほど.それだけ分かればいいや.Thx! 今度のすきやばしでのおごり期待してる!!

2014-09-09 16:10:08
oza @oza_x86

@repeatedly 相変わらずキミは意味不明だな!

2014-09-09 16:10:29
SKS rep @repeatedly

いやー,近くに専門家がいると楽ですなぁ.俺専門とかないから,聞かれないし楽だ

2014-09-09 16:11:54

時は流れ…

SKS rep @repeatedly

@oza_x86 Hive on Tezの場合だけど,MapReduceでいうあるノードが失敗した時の別ノードでジョブの再実行みたいなのってどういう感じになるんでしょ? > slideshare.net/Hadoop_Summit/…

2014-09-11 10:47:46
oza @oza_x86

@repeatedly 基本的に MapReduce と同じで,ステージごとに永続化してるのでその前から実行.

2014-09-11 10:51:40