0

階層化されたディレクトリがあり、各ディレクトリには多くのファイルがあり、各テキスト ファイルには多くの URL 文字列があります。Hadoop のすべてのファイルのすべての URL をバランスよくダウンロードしたいと考えています。

たとえば、1+5 ノードの Hadoop クラスターと 5 つの URL がある場合、入力として 5-URL-in-1 ファイルまたは 1-URL-per-file (次に 5 ファイルを取得) を入力として使用すると、よりバランスが取れます。 ?

Hadoop はデフォルトで入力セットを 64M ブロックとして分割し、1 つのノードのみで実行するように設定していると思います。5 つのスレーブすべてを実行することはできません。

あなたの答えに感謝します!

4

1 に答える 1

3

各 URL で非常に計算量の多い作業を行っておらず、ファイルが 64 MB よりはるかに小さい場合は、1 つのノードで 1 つのマッパーのみを実行する方がよいでしょう。その場合は、すべての URL を 1 つのファイルにまとめる方法を使用します。

各マッパーが十分な作業を行えるように、より大きなファイルを用意することをお勧めします。ファイルが非常に小さい場合は、それらをマージして合計を 64 MB マークに近づけます。これにより、各ファイルがメタデータを保持するために Namenode の RAM を占有し、RAM が制限されるため、HDFS により多くのデータを保存できるようになります。したがって、使用するファイルの数が少ない場合は、より多くのデータをクラスターと Namenode に入れることができます。 RAMの使用量が少なくなります。

また、 CombineFileInputFormatアプローチを試すこともできます

于 2012-03-01T17:02:45.377 に答える