任何人都可以解释mapreduce.job.reduces = -1的含义

时间:2017-01-13 06:39:35

标签: mapreduce yarn

需要了解mapreduce.job.reduces = -1的目的。我理解mapreduce.job.reduces属性会将文件输出减少到配置的值,但-1意味着什么。

1 个答案:

答案 0 :(得分:1)

引用Hive's documentation

  

mapred.reduce.tasks< - (在YARN中是mapreduce.job.reduces)
      默认值:-1
      添加In:Hive 0.1.0

     

每个作业的默认减少任务数。通常设置为接近可用主机数的素数。当mapred.job.tracker是" local"时忽略。 Hadoop默认将此值设置为1,而Hive使用-1作为其默认值。通过将此属性设置为-1,Hive将自动确定减少器的数量。

设置reducer的数量远远超过设置输出文件的数量。它以某种方式定义并行度,即并行运行多少个reduce任务。如果使用1 reduce任务,则不会实现并行性。如果使用2个reduce任务,理想情况下,则希望将每个reduce任务的工作负载(和执行时间)减少一半。同样适用于映射器的数量,但设置起来比较棘手。