我想根据每个作业更改集群的减少插槽容量。也就是说,原来我为一个tasktracker配置了8个reduce slot,所以对于一个有100个reduce任务的job,会同时运行(8 * datanode number)个reduce任务。但是对于一项特定的工作,我想将这个数字减少到一半,所以我做了:
conf.set("mapred.tasktracker.reduce.tasks.maximum", "4");
...
Job job = new Job(conf, ...)
在 Web UI 中,我可以看到对于这项工作,最大减少任务正好是 4,就像我设置的那样。然而,hadoop 仍然为这个工作的每个数据节点启动 8 个 reducer ......看来我不能像这样改变 reduce 容量。
我在 Hadoop 邮件列表上询问,有人建议我可以使用容量调度程序来实现,我该怎么做?
我正在使用 hadoop 1.0.2。
谢谢。