2013-12-20 33 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