簡単な MapReduce 操作の Qizmt を使用して、ローカルの単一システム テストを実行しています。「マップ」フェーズの最後に、次のように呼び出しています。
output.Add(rKey, rValue);
これは 100 万回と呼ばれ、キーは 1、2、3、4、5、6 などで、それぞれが一意です (結局のところ、テストしているだけです)。これが意図したとおりに行われていることを確認しました。です。関数は 100 万回独立して呼び出され、値の入力は正しいです。
驚いたことに、'Reduce' フェーズでのみ、たとえば 100 程度のキーが実際に受信されます (つまり、'Reduce' 関数は 100 回程度しか呼び出されません)。これらのキーは、0、383、766、2858、3241、5716 などのパターンでマップされたリストからほぼ任意に選択されたようです。
「Reduce」に至る一連のキーは一貫しています。すなわち。タスクを実行するたびに、一貫して 0、383、766 などを取得します。ただし、クラスターに 2 つ目のシステムを追加すると、通過するキーのセットが完全に変更されます。
'Map' と 'Reduce' の間の段階は、私には少し謎です。私の Map 関数は意図したとおりに動作しているように見えるので (つまり、'output' を 100 万回呼び出す)、どこを見ればよいかわかりません。回)。並列処理の経験が豊富な人は、私がどこを見るべきか、またはこの動作を引き起こす可能性のある何かを知っていますか?