1

MapReduceに関する次の論文を読み終えました。1 つの質問 - すべてのマップ操作が完了するまでの待ち時間を短縮しますか、それとも結果が得られたら開始できますか?

4

2 に答える 2

1

MapReduce ジョブでは、リデューサーはすべての Map ジョブが完了するまで reduce メソッドの実行を開始しません。リデューサーは、マッパーが利用可能になるとすぐに、中間のキーと値のペアのコピーを開始します。そのため、一部のマップがまだ実行されているときに、ジョブ トラッカーで数% を削減することを確認できます。

于 2012-11-14T10:23:45.610 に答える
1

Haskell には map と reduce (fold と呼ばれます) が組み込まれており、その実行順序は定義されていません (すべてを評価しようとしない限り、無限リストを操作することもできます)。したがって、どちらの方法でも実行できます。

Google がどのようにそれを行ったかを尋ねている場合、私にはよくわかりませんが、おそらく、reduce がマッピングしているリストを可能な限り最大限に消費するように設定したのでしょう。すでに処理された値をメモリに保持します。

于 2012-11-14T05:56:21.447 に答える