2016-09-23 140 views
0

我有一個正在執行distcp操作的oozie工作流程。 工作流文件如下:oozie distcp作業執行

<workflow-app xmlns="uri:oozie:workflow:0.3" name="distcp-wf"> 
<start to="distcp-node"/> 
<action name="distcp-node"> 
    <distcp xmlns="uri:oozie:distcp-action:0.1"> 
     <job-tracker>${jobtracker}</job-tracker> 
     <name-node>${namenode}</name-node> 
     <prepare> 
      <delete path="${namenode}/tmp/mohit/"/> 
     </prepare> 
     <configuration> 
      <property> 
       <name>mapred.job.queue.name</name> 
       <value>${queue_name}</value> 
      </property> 
     </configuration> 
     <arg>-m 1</arg> 
     <arg>${number_of_mapper}</arg> 
     <arg>-skipcrccheck</arg> 
     <arg>${namenode}/tmp/mohit/data.txt</arg> 
     </distcp> 
    <ok to="end"/> 
    <error to="fail"/> 
</action> 
<kill name="fail"> 
    <message>DistCP failed, error message[${wf:errorMessage(wf:lastErrorNode())}]</message> 
</kill> 
<end name="end"/> 

我想用-m使用DistCp使用設置映射器的數量。 我該怎麼辦,我已經與

<arg>-m 1</arg> 

<arg>1<arg> 

嘗試,但並沒有爲我工作。 ,我正的錯誤是如下:

Failing Oozie Launcher, Main class [org.apache.oozie.action.hadoop.DistcpMain], main() threw exception, Returned value from distcp is non-zero (-1) 
     java.lang.RuntimeException: Returned value from distcp is non-zero (-1) 
+0

您是否嘗試過類似於' -m '? – YoungHobbit

+0

是的,我也試過。 –

回答

1

參數數量是用於輸入/輸出作爲documentation

第一ARG表示輸入和第二ARG描述指示輸出

爲了改變生產者數量/減速器使用configuration例如:

<configuration> 
      <property> 
       <name>mapred.reduce.tasks</name> 
       <value>${firstJobReducers}</value> 
      </property> 
</configuration> 
+0

firstJobReducers的值將是數字,需要在屬性文件中設置,對嗎? –

+0

@MohitRane你可以在wf動作中設置它 - 就像你在你的例子中做的那樣,或者對整個wf使用屬性文件 – Mzf