如果我已将mapred-site.xml中参数mapred.tasktracker.reduce.tasks.maximum的值指定为2,并且如果程序代码将reduce任务指定为as job.setNumReduceTasks(1),然后将忽略mapred-site.xml中指定的参数或者它将被遵守,并且将同时执行2个reduce任务。
答案 0 :(得分:1)
您被mapred.reduce.tasks
和mapred.tasktracker.reduce.tasks.maximum
混淆了。实际上,job.setNumReduceTasks(1)
会将mapred.reduce.tasks
设置为1. mapred.tasktracker.reduce.tasks.maximum
是任务跟踪器同时运行的最大减少任务数。这是两个完全不同的参数。
此外,mapred.tasktracker.reduce.tasks.maximum
中mapred-site.xml
的值是唯一有效的值。您无法在任务跟踪器启动时使用它来更改它。 mapred.reduce.tasks
是一项工作的财产。不同的工作可以有不同的mapred.reduce.tasks
值。