我应该在哪个文件中设置reducer的数量并设置mapred.reduce.tasks
参数?
我的conf
文件夹中只有以下文件,但没有一个文件包含此参数:
ubuntu@group-3-vm1:~/conf$ ls
capacity-scheduler.xml hdfs-site.xml mapred-site.xml yarn-site.xml
core-site.xml hive-site.xml tez-site.xml
答案 0 :(得分:1)
<强>更新强>
您可以在mapred-site.xml中指定mapred.reduce.tasks
。这将设置将在hadoop设置上运行的所有作业的配置。在我看来,这不是一个好主意。
理想情况下,根据工作要求设置减速器数量。您可以使用以下提供的选项。
运行/启动hadoop作业时,可以通过命令行设置作业的
Reducer
。
hadoop jar <main_jar.jar> Main_class -D mapred.reduce.tasks=<number_of_reducers>
另一种方法是,在
Driver
班级中加入Job
配置。
job.setNumReduceTasks(number_of_reducers);
您无需在任何配置文件中设置属性(mapred.reduce.tasks)
。默认值为1.
如果您使用的是hadoop 2 ,最好使用 mapreduce.job.reduces
而不是 mapred.reduce.tasks
。
答案 1 :(得分:1)
所有Hadoop配置属性都分为以下几组。
Hadoop的1.X.X:
Hadoop的2.X.X
所以你想改变reducer的数量,即mapred.reduce.tasks。您必须将此参数保留在&#39; mapred-site.xml&#39; 文件中。