ユースケースは次のとおりです。
入力URLはマップによって読み取られ、後でフィルタリング後に出力されます。次に、パーティショナーはホスト名に基づいてそれらをパーティション化します。
map-reduceジョブを実行した後、出力URLにグローバル制限があります。これをすべてのレデューサーに均等に分散します。すなわち。グローバル制限が1000で、レデューサーの数が5の場合、すべてのレデューサーは最大で(1000/5 = 200)URLを出力として出力します。
問題は、(ユーザー入力のために)2つのホストのみからのURLがあり、これら2つのホストのそれぞれに100000のURLがある場合、これらのURLを処理する2つのレデューサー(同じホスト、同じパーティション)は、それぞれ200のURLのみを制限することです。出力。レストレデューサーは、パーティショニングのために処理するデータを取得せず、0レコードを発行します。
したがって、ホストあたり100000のURLと1000のグローバル制限があったとしても、出力には400のURLのみ(200のURL /ホスト)があります。