1

小さなファイル (~HDFS ブロック サイズ) が多数ある場合と大きなファイルがいくつかある場合、ジョブによって生成されるマップ タスクの数に違いはありますか?

4

1 に答える 1

3

どちらを使用するかによって異なりInputFormatます。これは、入力分割の計算を決定し、マップ タスクの数を決定するためです。

デフォルトを使用する場合TextInputFormat、各ファイルには少なくとも 1 つの分割があるため、ファイルごとに少なくとも 1 つのマッパーがあり、これらのファイルが数 kB であっても、各マッパーはほとんど作業を行いませんが、これにより Map/フレームワークを減らします。つまり、これらの「小さい」ファイルがブロック サイズに近いことが保証されている場合、それはおそらくあまり問題にはなりません。

ファイルを制御できず、ファイルが非常に小さくなる可能性がある場合は、複数の入力ファイルを同じ分割に結合する別のInputFormat呼び出しCombineFileInputFormatを使用することをお勧めします。この場合のマップの数は、データの全体量にのみ依存します。ファイルの数。実装はここにあります。

于 2013-02-09T01:41:00.570 に答える