我在用一个 mapred.reduce.tasks = 100 (只是试验)。生成的Map数为537,因为这取决于输入拆分。问题是并行运行的减速器数量不会超过4个。即使在Map100%完成之后。有没有一种方法来增加运行的减速机的数量,因为cpu使用率是次优的,而且减速机的速度非常慢。我还设置了 mapred.tasktracker.reduce.tasks.maximum = 100 . 但这似乎并不影响减速器并联运行的数量。
mapred.reduce.tasks = 100
mapred.tasktracker.reduce.tasks.maximum = 100
sbdsn5lh1#
原来所需要的只是在更改mapred-site.xml之后重新启动mapred和dfs守护程序。 mapred.tasktracker.reduce.tasks.maximum 确实是正确的参数设置,以增加减少能力。无法理解为什么hadoop选择不重新加载 mapred-site 每次提交作业时。
mapred.tasktracker.reduce.tasks.maximum
mapred-site
ecfdbz9o2#
检查分区器使用的哈希码;如果您的键只返回4个hashcode值,hadoop将只调度4个reducer。您可能需要实现自己的分区器来获得更多的缩减器,但是如果Map器只生成4个键,则4是最大的缩减器数。
z9ju0rcb3#
您可以使用如下作业配置指定减速器的数量:作业集(6);另外,在执行jar时,可以传递如下属性:-d mapred.reduce.tasks=6
3条答案
按热度按时间sbdsn5lh1#
原来所需要的只是在更改mapred-site.xml之后重新启动mapred和dfs守护程序。
mapred.tasktracker.reduce.tasks.maximum
确实是正确的参数设置,以增加减少能力。无法理解为什么hadoop选择不重新加载
mapred-site
每次提交作业时。ecfdbz9o2#
检查分区器使用的哈希码;如果您的键只返回4个hashcode值,hadoop将只调度4个reducer。
您可能需要实现自己的分区器来获得更多的缩减器,但是如果Map器只生成4个键,则4是最大的缩减器数。
z9ju0rcb3#
您可以使用如下作业配置指定减速器的数量:
作业集(6);
另外,在执行jar时,可以传递如下属性:
-d mapred.reduce.tasks=6