リピさんとオザさんのTezとSparkの会話
Tezって実際どこまで行けるんだろ?Sparkに比べてunmatureなのは確かだけど,試してみては?と言えるレベルなんだろうか
2014-09-09 15:13:43@oza_x86 TezとSparkって同じDAGだと思うんだけど,なんか実行モデルそのものに大きな違いってある?裏がRDDじゃないかそうでないかとか,そんな感じ?
2014-09-09 15:37:13@repeatedly 実行モデルはだいたい一緒. 抽象化の仕方が RDD か否かの違い. RDD って実体考えると Collection API なので、API が違うという話になる.
2014-09-09 15:41:46@oza_x86 ふーむ.現状だとSparkの方が高速に動作する,という認識なんだけど,TezとしてはそこはTODOという話?それともすでに追いつく算段は出来ている?
2014-09-09 15:43:00@repeatedly 機能的な面では、Tez は実行時に統計情報のとれる API がついてるので、それを基に DAG を rewriting ができる. 例えば、reducer の数を runtime に統計情報から自動的に決めることができる. これは現状のSparkでは無理.
2014-09-09 15:43:32@oza_x86 いや,これ.どこまで信じていいのか分かってないんだけど > amplab.cs.berkeley.edu/benchmark/
2014-09-09 15:45:13@repeatedly まだベンチマークとってないから確信はしてないんだけど、わたしの認識では、ディスクに触り始めると Tez の方が速いと思う. 中間ファイルの形式に RLE 採用してるから. issues.apache.org/jira/plugins/s…
2014-09-09 15:47:12@repeatedly そう、データ量の話. RDD はメモリ内部で Java オブジェクトそのままキャッシュする機能があるよね. あれはメモリ効率悪いけど CPU intensive なベンチマークには強い. Ser/Deser を全てすっ飛ばせるから.
2014-09-09 15:54:01@oza_x86 つまり,Spillするようにして動作させる場合にはTezの方が速くて,全部オンメモリでやる場合にはSparkは色々とすっ飛ばしているので,その分パフォーマンスが稼げていると言う話?
2014-09-09 15:57:50@repeatedly Yes.まだベンチマークとれてないから予測の域だけどね.その辺りを根拠に,今のところは Spark は a framework for in-memory computing だと思ってる.
2014-09-09 15:59:05@oza_x86 I see. Thanks! あと一つ確認なんだけど,TezのDAGというのはMRを分解してのDAGという理解で良いよね?Sparkの方はMRとかがないし,どちらかというとPrestoとかに近いと思っているのだけども
2014-09-09 16:01:48@repeatedly MR を分解って何だろ.Spark にも Shuffle はあるし,Tez でも map{}.map{} みたいのはできるよ.
2014-09-09 16:04:24@oza_x86 いや,こんな図があったから,これが便宜上MRで表しているのか,実際の実行モデルは一ステージみたいになっているのか,というのがよくわかってない > slideshare.net/Hadoop_Summit/…
2014-09-09 16:05:41@repeatedly MapReduce 分かってるユーザ向けに,便宜上この説明をしてると思う.実際は Spark のステージみたいになってる.
2014-09-09 16:08:50時は流れ…
@oza_x86 Hive on Tezの場合だけど,MapReduceでいうあるノードが失敗した時の別ノードでジョブの再実行みたいなのってどういう感じになるんでしょ? > slideshare.net/Hadoop_Summit/…
2014-09-11 10:47:46