hadoop集群:map任务只在一台机器上运行,而不是全部

时间:2011-10-25 20:50:11

标签: python hadoop mapreduce hadoop-streaming

我有一个hadoop cluster of three machines,其中一台机器充当主机和从机。

当我运行wordcount-example时,它会在两台计算机上运行地图任务 - worker1worker2但是当我运行自己的代码时,它只在一台机器上运行 - 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>

1 个答案:

答案 0 :(得分:1)

您的投入有多大? Hadoop将作业拆分为输入拆分,如果文件太小,它只会有一个拆分。

尝试更大的文件 - 大小约1GB,看看你是如何获得的。


您还可以检查以确保每个TaskTracker都正确报告JobTracker。如果没有正确连接的TaskTracker,它将无法获得任务:

   $ hadoop job -list-active-trackers

此命令应输出所有3个主机。