2

hadoop cluster of three machines1台のマシンがマスターとスレーブの両方として機能 する場所があります。

wordcount-exampleを実行すると、worker1との 2 台のマシンで map タスクが実行されworker2ます。 しかし、自分のコードを実行すると、それは 1 台のマシンでしかworker1実行されません。すべてのマシンでマップ タスクを実行するにはどうすればよいでしょうか?

Input Split Locations

/default-rack/master
/default-rack/worker1
/default-rack/worker2  

修繕!!!

の構成に次を追加し、mapred-site.xml修正しました

<property>
  <name>mapred.map.tasks</name>
  <value>100</value>
</property>
4

1 に答える 1

1

あなたのインプットはどれくらいですか?Hadoop はジョブを入力分割に分割します。ファイルが小さすぎる場合、分割は 1 つだけになります。

より大きなファイルを試してみてください。たとえば、サイズが約 1GB で、マッパーがどのように取得されるかを確認してください。


また、すべての TaskTracker が JobTracker に適切に報告されていることを確認することもできます。正しく接続されていない TaskTracker がある場合、タスクを取得できません。

   $ hadoop job -list-active-trackers

このコマンドは、3 つのホストすべてを出力するはずです。

于 2011-10-26T14:30:52.740 に答える