我在链接中找到了此配置名称 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?如果我错过了一些明显的理解,请提出建议吗?
答案 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).