2016-09-23 111 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