更改mapred.reduce.tasks

时间:2015-09-20 22:29:01

标签: xml hadoop mapreduce hive hdfs

我应该在哪个文件中设置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

2 个答案:

答案 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:

  1. core - core-site.xml
  2. hdfs - hdfs-site.xml
  3. mapred - mapred-site.xml
  4. Hadoop的2.X.X

    1. core - core-site.xml
    2. hdfs - hdfs-site.xml
    3. mapreduce - mapred-site.xml
    4. yarn - yarn-site.xml
    5. 所以你想改变reducer的数量,即mapred.reduce.tasks。您必须将此参数保留在&#39; mapred-site.xml&#39; 文件中。