通过提供以下命令,我停止了在伪分布式模式下运行的所有代理。
stop-all.sh
然后我将“mapred-site.xml”的配置文件更改为1 Map Task
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>localhost:54311</value>
</property>
<property>
<name>mapred.tasktracker.map.tasks.maximum</name>
<value>1</value>
</property>
<property>
<name>mapred.tasktracker.reduce.tasks.maximum</name>
<value>1</value>
</property>
</configuration>
你看我已经设置了1个MapTask和1个ReduceTask来运行。
然后我开始重新启动所有代理
start-all.sh
并运行map-reduce程序,但我仍然看到2个任务,而不是mapred-site.xml中配置的1个。
任务的屏幕截图如下所示,
为什么会出现这种差异,请指导我完成
谢谢
答案 0 :(得分:1)
好的,所以这个属性mapred.tasktracker.map.tasks.maximum告诉任务跟踪器一次可以运行的最大任务数(映射器任务)。基本上,您限制每个运行任务跟踪器的节点一次运行一个映射器。
如果你有10个节点,那么你应该可以并行运行10个映射器。
但是,如果您的作业需要2个映射器(完全基于输入数据的大小和块大小,除非您扩展inputformat)并且您只有一个节点,那么映射任务将在该节点上按顺序执行。
希望现在更清楚了。