Hadoop集群:map任务只在一台机器上运行,而不是所有机器上运行



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

当我运行wordcount-example时,它在两台机器(worker1worker2)上运行map任务。但是当我运行自己的代码时,它只在一台机器上运行- 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>

你的输入有多大?Hadoop将作业分割成输入分割,如果你的文件太小,它将只有一个分割。

尝试一个更大的文件——比如大约1GB的大小,看看你得到了什么样的映射器。


你也可以检查确保每个TaskTracker都正确地报告给JobTracker。如果有一个未正确连接的TaskTracker,它将无法获得任务:

   $ hadoop job -list-active-trackers

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

相关内容

  • 没有找到相关文章

最新更新