mapreduce.job.running.reduce.limit 和 mapred.reduce.tasks 有什么区别



我们正在使用Hadoop 2.7.1,我发现以下2个参数都在某些现有的MapReduce代码中设置为

mapreduce.job.running.reduce.limit=500
mapred.reduce.tasks=50

似乎有效,因为最终生成了50个part-*文件。

有人知道2个参数之间的区别吗?如果人们指定两个参数会发生什么?谢谢。

来自官方文档:

MapReduce.job.running.ReDuce.Limit

同时减少每个作业任务的最大数量。没有限制如果此值为0或负。

如果人们指定他们俩,实际上会发生什么?

在您的示例中将没有效果。但是,如果您将限制设置为50,而任务为500,那么Hadoop也不会一次运行所有500个还原器,即使您的群集容量足够。

最新更新