设置特定M / R作业的减速机容量

时间:2013-05-02 13:01:47

标签: hadoop mapreduce

我想在每个作业的基础上更改群集的减少插槽的容量。也就是说, 最初我为任务跟踪器配置了8个减少插槽,因此对于具有100个减少任务的作业,将会有(8 * datanode number)减少同时运行的任务。但是对于一个特定的工作,我想把这个数字减少到一半,所以我做了:

conf.set("mapred.tasktracker.reduce.tasks.maximum", "4");
...
Job job = new Job(conf, ...)

在Web UI中,我可以看到,对于这项工作,max reduce任务正好是4,就像我设置的那样。然而,hadoop仍然为每个数据节点启动8个减速器...这似乎我无法改变这样的减少容量。

我在Hadoop邮件列表上询问过,有人建议我可以使用容量调度程序,我该怎么办?

我正在使用hadoop 1.0.2。

感谢。

1 个答案:

答案 0 :(得分:1)

Capacity Scheduler允许您为MapReduce作业指定资源限制。基本上,您必须定义要安排作业的队列。每个队列可以有不同的配置。

就您的问题而言,在使用容量调度程序时,可以指定每任务RAM限制,以限制给定任务占用的槽数。根据{{​​3}},目前只在Linux平台上支持基于内存的调度。

有关此主题的详细信息,请参阅:documentationhttp://wiki.apache.org/hadoop/LimitingTaskSlotUsage