1

Hadoop でいくつかのテストを実行したいと考えています。大規模なクラスター (約 50 Tb) があり、いくつかのテストを実行するためのデータを生成したいと考えています。まず、構造化データ (CSV) を生成するために、ハイブのパフォーマンスをテストしたいと考えています。誰かがそれを達成するための最良の方法を教えてください。

4

1 に答える 1

4

最初の問題は、mapreduce ジョブを偽装して、データなしでマッパーを起動することです。デフォルトでは、ブロックごとに 1 つのマップ タスクが開始されるので、ごまかしましょう。

これを行うには、hdfs にいくつかの「偽のファイル」を作成することから始めます。

for i in {1..100}; do echo "hello $i" | hadoop fs -put - fakes/$i.txt ; done

これには実際にはしばらく時間がかかります...おそらく数分です。

次に、これらのファイルを「読み取る」MapReduce ジョブを作成します。Map タスクでは、実際にはそのデータを使用しないでください。そのマップ関数でランダム データを生成し、それを書き出します ( context.write)。MapReduce ジョブが実行されると、ランダム データをすべて並行して生成する 100 個のマップ タスクが開始されます。

レデューサーの数を 0 に設定します。ここでは何も必要ありません。

于 2012-08-02T17:41:25.180 に答える