2013-12-20 35 views
1

我有一个Hadoop Map-Reduce应用程序,其代码中的下列行(将reducer的数量设置为1)。强制Hadoop运行具有多个reducer的应用程序

job.setNumReduceTasks(1) 

我想运行多个减速这个应用程序,所以我尝试添加下面的XML代码$HADOOP_CONF_DIR/mapred-site.xml

<property> 
    <name>mapreduce.job.reduces</name> 
    <value>2</value> 
</property> 

但是,代码仍然有1个减速运行。 有没有办法强制hadoop应用程序使用2个reducer运行,或者应用程序代码的优先级是否始终较高?

回答

2

你需要修改的代码在这种情况下,调用job.setNumReduceTasks(1)在任何配置或命令行通过的财产优先

0

您可以通过减速机的数量,当你提交申请(通过命令行) 。通过命令行传递配置参数的优先级高于通过应用程序代码(第二高优先级)和xml文件(第三优先级)传递它的优先级

使用-D选项并设置值。

EG: $仓/ hadoop的罐子/usr/joe/wordcount.jar org.myorg.WordCount的/ usr /乔/单词计数/输入的/ usr /乔/单词计数/输出-D mapred.reduce.tasks = 2

相关问题