3

MultithreadedMapper はいつ使用する必要がありますか?

アプリケーションが純粋な計算である場合に MultithreadedMapper を使用すると、仕事が速くなりますか? (レイテンシ型マッパーなし)

4

2 に答える 2

6

それは依存しますが、最初の解決策として MultithreadedMapper を使用しないでください。

そのため、単一のスレッド化されたマッパーを使用して、より多くのマッパーを同時に起動し、複数の入力で動作できるようにスケーリングすることをお勧めします。コアが多いほど、mapred.tasktracker.map.tasks.maximum の値を高く設定できます。もちろん、これにはより強力なマシンが必要です。

私の理解では、MultithreadedMapper は、ローカル I/O よりも待ち時間が長い Web からページをフェッチするような I/O バウンドの場合に便利です。このような場合、MultithreadedMapper を使用すると、単一のネットワーク I/O 呼び出しでブロックされず、データが利用可能になったときに処理を続行できるため、役立ちます。

ただし、処理する HDFS に大きなデータがある場合は、データがローカライズされているため、簡単に取得できます。計算が CPU バウンドの場合は、マルチコア、マルチプロセス ソリューションの方が便利です。

また、マッパーがスレッドセーフであることを確認する必要があります。

于 2012-07-03T06:19:02.317 に答える
3

マッパーで複数のスレッドを使用する場合と使用しない場合については、この記事12を確認してください。MultithreadedMapper を使用するよりも、各ノードのマップ スロットの数を増やすことをお勧めします。

于 2012-07-03T06:17:48.070 に答える