0

私の問題の要点は..ジョブに必要なマップスイープの数をどのように減らすのですか? ジョブのマップ タスクの数は、data_size/HDFS_BLOCK_SIZE です。これを完了するために必要なスイープの数は、マップ スロットの数によって異なります。他に何も実行しておらず、ジョブを 1 つだけ実行していると仮定すると、ノードあたりの CPU 使用率が低いことがわかります (実際には、ノードあたりより多くのマップ ジョブを実行できることを意味します)。mapred.tasktracker.map.tasks.maximum パラメーターを試してみました (たとえば、各ノードには 32 個のプロセッサがあり、それを 30 に設定しました) - しかし、マップ スロットの数と全体的な CPU 使用率を増やすことはできませんでした。 60%前後です。他に使用するパラメータはありますか? 私が持っているデータサイズは十分に大きいです(32GB、

4

2 に答える 2

0

スラッシュで申し訳ありませんが、インストールで問題が発生した可能性があります。たまたまhadoopを再インストールしましたが、期待どおりに機能します。一部のパラメータが競合しているに違いないと思います。

于 2012-08-17T03:29:24.950 に答える
0

誰もまだ言っていないかもしれませんが、MapReduce は主に IO バウンドであり、ディスクから大量のデータを読み取り、書き戻し、読み取り、再度書き込む必要があります。読み取りと書き込みの間に、map と reduce ロジックを実行します。

したがって、CPU 使用率を引き上げると聞いたのは、クラスタが IO バウンドではなくなったことです。

  • ハードディスクを RAID-0 または RAID-10 にして、最速のハードディスクを手に入れましょう。消費者市場には、10k RPM の Western Digital VelociRaptor があります。
  • Hadoop は主にシーケンシャル RAD 用に最適化されているため、SSD はあまり貢献しません。
  • できるだけ多くのネットワーク帯域幅を提供します。
  • ディスクキャッシュ用の大量の RAM。

それでも、CPU 使用率は 100% 未満になるはずですが、はるかに優れており、パフォーマンスが飛躍的に向上します。

ただし、上記の点から結論付けられるように、CPU 使用率は Hadoop クラスターの適切な指標ではありません。Hadoop は主にデータの信頼性の高いストレージに関するものであり、データを高速処理する優れた機能を提供します。スーパーコンピューターのパフォーマンスが必要な場合は、アルゴリズムをコーディングするために MPI クラスターと PH.D を取得してください ;)

于 2012-08-04T09:24:01.347 に答える