私はhadoop cluster of three machines
を持っていますが、1台のマシンがマスターとスレーブの両方で動作します。hadoopクラスタ:マップタスクは1台のマシンでのみ実行され、すべてではありません
wordcount-exampleを実行すると、worker1
とworker2
の2つのマシンでマップタスクが実行されます。 私自身のコードを実行すると、1台のマシンでしか実行されません - worker1
、すべてのマシンでマップタスクを実行するにはどうしたらいいですか?
Input Split Locations
/default-rack/master
/default-rack/worker1
/default-rack/worker2
FIXED !!!
私はmapred-site.xml
の私の構成では、以下を追加し、それはあなたの入力がどのくらいある?
<property>
<name>mapred.map.tasks</name>
<value>100</value>
</property>
スケジューリングアルゴリズムは、ストリーミングと通常のJava MRジョブで同じです。 JobTrackerでMRスロットが空きとしてマークされていない限り、タスクがスケジュールされる場所に違いはありません。 –
あなたの入力がどのように見えるかを両方のケースで説明してください。入力ファイル数、ファイルsizez、使用された圧縮など。 –
@ニールズ - 入力スプリットの場所が元のクエリで指定されています。分割された場所は、ストリーミングの有無にかかわらず同じように見えます。 FIFOスケジューリングロジック(デフォルト)は、ストリーミングの有無にかかわらず同じです。 –