象本2版の6.4 シャッフルとソートを読んでMapReduceのシャッフルって面白いし興味深いなーと思い、ついでに軽くHadoop 0.20系のソースもあわせて読んでみたのでメモっておく。 シャッフルっていうとまずソートのイメージだよね。ていうか僕自身はそうだった。 ワードカウントの例でいうとこんな感じ。キーでソートしてるね。 まあソートもメインな処理なんだろうけど他にもいろいろやってます。 map関数の出力からreduce関数の入力までの一連の処理をすべてシャッフルと呼ぶと思うんだけど、以下のようなことをやってます。 まずmapタスク側の処理を見て行きましょう。HadoopのソースはMapTaskが該当します。 mapタスクでは出力が書き込まれる循環メモリバッファがあります。これがMapOutputBufferに相当します。 このバッファの大きさがデフォルト100Mで80%書き込まれると