hadoop:定义map / reduce任务属性

时间:2013-12-30 14:19:40

标签: hadoop

我试图找到如何设置以下属性的连贯解释:

mapred.map.tasks
mapred.reduce.tasks
mapred.tasktracker.map.tasks.maximum
mapred.tasktracker.reduce.tasks.maximum
mapred.reduce.slowstart.completed.maps

对于一个简洁的用例,我有4个节点,其中12个核心各有2个超线程(因此cpuinfo显示24个),64GB内存。我将第一个节点用于名称节点/作业跟踪器和数据节点/任务跟踪器。我没有并行执行作业。对于低内存设置,作业在堆空间上失败,因此我的mapred.child.java.opts设置现在是-Xmx3G -XX:+ UseParallelGC。使用Hadoop 1.2.1

1 个答案:

答案 0 :(得分:3)

mapred.map.tasks - 此属性定义要为作业运行的地图任务的数量,通常不会由您的作业配置。这通常由输入格式,要处理的文件数以及这些文件的可拆分属性定义。简而言之,您不需要设置此属性(我在4年内没有使用Hadoop)。

mapred.reduce.tasks - 此属性控制为给定作业运行的reducer数。这是由程序员在作业配置阶段配置的 - 请参阅JobConf.setNumReduceTasksJob.setNumReduceTasks

mapred.tasktracker.map.tasks.maximum - 此属性在conf / mapred-site.xml文件中设置,表示给定任务跟踪器节点可以运行的最大并发映射插槽数。如果您需要更改此值,则需要重新启动tasktracker服务,因为它仅在启动时读取

mapred.tasktracker.reduce.tasks.maximum - 与上面的属性一样,这个属性定义了给定任务跟踪器可以运行的最大concurent reducer任务数。

mapred.reduce.slowstart.completed.maps - 这定义了在启动reducer任务阶段之前需要完成的map任务的比例。该值由程序员在作业配置阶段设置(您需要手动设置此属性,因为没有像前两个那样的便捷方法)。 0到1:0之间的值是在任何映射完成之前启动reducer任务(不建议),1是在所有map任务完成该作业之前不启动任何reducer任务。该值通常设置为0.8 - 0.99。