0

質問があります。cassandra から入力を取得する mapreduce プログラムがあります。私の入力は少し大きく、約100000000データです。私の問題は、プログラムの処理に時間がかかりすぎることですが、mapreduce は大量のデータに対して適切で高速だと思います。map および reduce タスクの数に問題があるのではないかと思います.. JobConf、Job、および conf/mapred-site.xml で map および reduce の ask の数を設定しましたが、変更が見られません。 .. 私のログには、最初は map 0% reduce 0% があり、約 2 時間の作業の後、map 1% reduce 0% が表示されます..!! 私は何をすべきか?私を助けてください私は本当に混乱しています...

4

1 に答える 1

1

これらの点を考慮して、ボトルネックがどこにあるかを確認してください --

  1. マップの数を増やしたり、タスク ファイルを減らしたりするように構成するだけでは、うまくいきません。それをサポートするハードウェアが必要です。Hadoop は高速ですが、巨大なファイルを処理するには、おっしゃる通り、並列マップの数を増やし、実行するタスクを減らす必要があります。必要なものを達成するには、より多くのプロセッサが必要です。より多くのプロセッサを取得するには、より多くのマシン (ノード) が必要です。たとえば、それぞれ 8 つのプロセッサを搭載した 2 つのマシンがある場合、合計で約 16 の処理能力が得られます。したがって、合計 16 の map および reduce タスクを並行して実行でき、スロットが占有されなくなるとすぐに次の一連のタスクが開始されます。あなたが持っている16のスロットのうち。ここで、8 個のプロセッサを搭載したマシンをもう 1 台追加すると、24 個になります。

  2. map と reduce に使用したアルゴリズム。処理能力があっても、アルゴリズムが実行されない限り、Hadoop アプリケーションが実行されるわけではありません。1 つのマップ タスクが完了するまでに時間がかかる場合があります。

于 2013-10-19T08:01:31.237 に答える