hadoop:还原器的数量保持不变4

lc8prwob  于 2021-06-03  发布在  Hadoop
关注(0)|答案(3)|浏览(242)

我在用一个 mapred.reduce.tasks = 100 (只是试验)。生成的Map数为537,因为这取决于输入拆分。问题是并行运行的减速器数量不会超过4个。即使在Map100%完成之后。有没有一种方法来增加运行的减速机的数量,因为cpu使用率是次优的,而且减速机的速度非常慢。
我还设置了 mapred.tasktracker.reduce.tasks.maximum = 100 . 但这似乎并不影响减速器并联运行的数量。

sbdsn5lh

sbdsn5lh1#

原来所需要的只是在更改mapred-site.xml之后重新启动mapred和dfs守护程序。 mapred.tasktracker.reduce.tasks.maximum 确实是正确的参数设置,以增加减少能力。
无法理解为什么hadoop选择不重新加载 mapred-site 每次提交作业时。

ecfdbz9o

ecfdbz9o2#

检查分区器使用的哈希码;如果您的键只返回4个hashcode值,hadoop将只调度4个reducer。
您可能需要实现自己的分区器来获得更多的缩减器,但是如果Map器只生成4个键,则4是最大的缩减器数。

z9ju0rcb

z9ju0rcb3#

您可以使用如下作业配置指定减速器的数量:
作业集(6);
另外,在执行jar时,可以传递如下属性:
-d mapred.reduce.tasks=6

相关问题