0

Apache が提供するベンチマーク ファイル TestDFSIO を使用して Hadoop 構成をテストしています。このチュートリアル (リソース 1) に従って実行しています。

http://www.michael-noll.com/blog/2011/04/09/benchmarking-and-stress-testing-an-hadoop-cluster-with-terasort-testdfsio-nnbench-mrbench/#testdfsio

テストの使用方法は次のとおりです。

TestDFSIO.0.0.4
Usage: hadoop jar $HADOOP_HOME/hadoop-*test*.jar TestDFSIO 
           -read | -write | -clean 
           [-nrFiles N] [-fileSize MB]
           [-resFile resultFileName] [-bufferSize Bytes]

いくつかのフラグについて少し混乱しています。具体的には、バッファ サイズ フラグとは何ですか? また、ジョブが正常に完了したときに hdfs をナビゲートしている間 (最初に TestDFSIO の書き込みを実行しました)、resultFileName を選択して作成したと思われるファイル名を見つけることができませんでした。使用した resultFileName でファイルが見つからないのはなぜですか?

このページ (リソース 2) (具体的には25 ページ) も見ました。

http://wr.informatik.uni-hamburg.de/_media/research/labs/2009/2009-12-tien_duc_dinh-evaluierung_von_hadoop-report.pdf

テストのパラメーターの 1 つとして、64MB と 128MB のブロック サイズを使用していました。bufferSize フラグの後に '64MB' (バイトに変換) を入れてみましたが、これによりジョブが失敗し、buffersize フラグの目的と、テストに異なるブロック サイズを使用する方法を理解していないと思いました。テストのブロック サイズを変更するにはどうすればよいですか (リソース 2 に従って)。

4

3 に答える 3

2

バッファ サイズ フラグとは何ですか?

バッファ サイズ フラグは、書き込みバッファの長さをバイト単位で示します。TestDFSIO.java のWriteMapperコンストラクターを参照してください。

public WriteMapper() {
  for(int i=0; i < bufferSize; i++)
    buffer[i] = (byte)('0' + i % 50);
}

ここでは、データが生成され、ディスクに書き込まれる前にメモリ内のバッファに書き込まれます。後でディスクに書き込むときは、バイトごとに 1 ステップではなく、1 ステップですべてが書き込まれます。多くの場合、書き込みが少ないほどパフォーマンスが向上するため、バッファーを大きくするとパフォーマンスが向上する可能性があります。

使用した resultFileName でファイルが見つからないのはなぜですか?

通常、結果は /benchmarks/TestDFSIO に自動的に書き込まれます。そこに見つからない場合は、ジョブ ログで mapred.output.dir を検索してください。

テストのブロック サイズを変更するにはどうすればよいですか (リソース 2 に従って)。

ブロック サイズは、ジェネリック オプションとしてパラメーターとして渡すことができます。次のようなものを試してください:

hadoop jar $HADOOP_HOME/hadoop-*test*.jar TestDFSIO -D dfs.block.size=134217728 -write
于 2012-09-10T21:10:47.707 に答える
1

使用した resultFileName でファイルが見つからないのはなぜですか? ジョブ実行ログの最後に、おそらく次のような行が表示されているはずです。

java.io.FileNotFoundException: File does not exist: /benchmarks/TestDFSIO/io_write/part-00000

TestDFSIO を処理している間は、通常、lzo またはその他の圧縮が使用されていることを意味します (そのため、ファイル名に追加の何かが追加されます)。

探す代わりに

/benchmarking/TestDFSIO/io_write/part-00000

これを試してください(最後の * ワイルドカードを参照してください):

hadoop fs -ls /benchmarking/TestDFSIO/io_write/part-00000* 
于 2013-02-01T16:42:48.777 に答える
-1

この質問にはこれを試してください (テストのブロック サイズを変更するにはどうすればよいですか (リソース 2 に従って)?

hadoop jar $_HADOOP_HOME/share/hadoop/mapreduce/hadoop-*test*.jar.jar TestDFSIO -write -nrFiles 4 -fileSize 250GB -resFile /tmp/TestDFSIOwrite.txt

于 2016-10-19T17:03:44.520 に答える