hadoop配置中mapred.tasktracker.tasks.maximum的默认值是多少

时间:2014-01-21 05:35:39

标签: hadoop hadoop-streaming

我在链接中找到了此配置名称 http://wiki.apache.org/hadoop/HowManyMapsAndReduces

然而,当我试图搜索hadoop文档时,我发现配置名称为

 mapred.tasktracker.reduce.tasks.maximum   default value 2
 mapred.tasktracker.map.tasks.maximum      default value 2

http://hadoop.apache.org/docs/r1.1.1/mapred-default.html 但我无法找到mapred.tasktracker.tasks.maximum?如果我错过了一些明显的理解,请提出建议吗?

1 个答案:

答案 0 :(得分:2)

第一个link解释了您应该为MapReduce作业设置多少个映射器(只是一个指示)和缩减器,以便您可以实现更好的负载平衡。

您提到的第二件事是每个节点中可以同时运行多少个map任务和reduce任务。在http://hadoop.apache.org/docs/r1.1.1/mapred-default.html中,这些配置显示为:

mapred.tasktracker.map.tasks.maximum         2  
mapred.tasktracker.reduce.tasks.maximum      2

如果您想要更改它们,那么您应该更改文件{$HADOOP_HOME}/conf/mapred-site.xml,其中${HADOOP_HOME}是hadoop的路径。

例如,如果您确定需要8个reducer(这可以通过在代码中设置conf.setNumReduceTasks(8);来完成)并保留这些默认值,假设群集中有2个节点,每个节点将在开始时运行2个映射任务,因此,总体而言,2x2 = 4个映射任务将在您的集群中运行。当任何这些映射任务完成时,该节点将运行队列中的下一个映射任务。在任何时候,您的群集中都将运行4个地图任务(最多)。

编辑:我发现了这个错误。在第一个链接中它说:

The right number of reduces seems to be 0.95 or 1.75 * (nodes * mapred.tasktracker.tasks.maximum).

应该是:

The right number of reduces seems to be 0.95 or 1.75 * (nodes * mapred.tasktracker.reduce.tasks.maximum).