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