私の Hadoop ジョブの 1 つで、レデューサー タスクに供給されるデータの量が非常に不均衡です。たとえば、10 個のレデューサー タスクがある場合、そのうち 9 個への入力サイズは 50KB の範囲になり、最後のタスクは 200GB 近くになります。マッパーが単一のキーに対して多数の値を生成していると思われますが、そのキーが何であるかはわかりません。これは古い仕事であり、ソース コードにアクセスすることはできません。ジョブの実行中にマッパーからの出力またはレデューサーへの入力として、キーと値のペアを確認する方法はありますか?
2 に答える
1
これを CLI ジョブの実行に追加してみてください。-D mapred.reduce.tasks=0
これにより、リデューサーの数が 0 に設定されます。これにより、マッパーは出力を直接 HDFS にダンプします。ただし、関係なくレデューサーの数を上書きしているコードがある可能性があります...そのため、これは機能しない可能性があります。
これが機能する場合、マッパーの出力が表示されます。
于 2012-12-04T21:09:03.257 に答える
0
別の単純な map reduce ジョブを使用して、キーの値の合計をいつでもカウントできます。
于 2013-05-30T12:55:39.290 に答える