1

HDFS ブロック サイズが 64 MB のクラスターがあります。100 個のプレーン テキスト ファイルを含むディレクトリがあり、それぞれのサイズは 100 MB です。このInputFormatジョブの はTextInputFormatです。マッパーはいくつ実行されますか?

Hadoop 開発者試験でこの質問を見ました。答えは 100 です。他の選択肢は 64、640、200 の 3 つです。

ガイドしてください。前もって感謝します。

4

3 に答える 3

4

これは間違っているように見えるというあなたの評価に同意します

もちろん、投稿されていない試験問題がさらにある場合を除きます。

  • これらの「プレーン」テキスト ファイルは gzip 圧縮されていますか? その場合、分割できませんか?)
  • クラスターの分割サイズは 64MB かもしれませんが、入力ファイルの割り当てられた分割サイズはどれくらいですか? 128MB ですか?

試験問題と「正しい」答えに公平を期すために、試験問題全体が必要です。

正解は 200 です (ファイルのブロック サイズがすべてデフォルトの 64MB で、ファイルが圧縮されていないか、snappy などの分割可能なコーデックで圧縮されている場合)。

于 2012-10-12T10:42:59.663 に答える
0

答えが間違っていたようです。

ただし、以下のシナリオでは正しい場合があります。

1)isSplitableメソッドをオーバーライドし、falseを返すと、マップタスクの数は入力ファイルの数と同じになります。この場合は100になります。

2)mapred.min.split.size、mapred.max.split.size変数を構成する場合、デフォルトでは、最小分割サイズは0で、最大分割サイズはLong.MAXです。

以下は、マッパーの数を識別するために使用する関数です。

max(mapred.min.split.size、min(mapred.max.split.size、blocksize))

このシナリオでは、mapred.min.split.sizeを100として構成すると、100個のマッパーが作成されます。

しかし、与えられた情報によると、100は正しい答えではないと思います。

于 2012-10-12T10:06:44.010 に答える
0

ブロック サイズ (64 MB) がファイル サイズ (100 MB) より小さいため、各ファイルは 2 つに分割され、200 のマッパーが実行されます。

于 2015-06-07T20:16:02.277 に答える