2

我有一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>
4

1 回答 1

1

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

尝试一个更大的文件——比如大约 1GB 大小,然后看看你如何得到映射器。


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

   $ hadoop job -list-active-trackers

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

于 2011-10-26T14:30:52.740 回答