oozie distcp作业执行

时间:2016-09-23 14:54:37

标签: oozie distcp

我有一个执行distcp操作的oozie工作流程。 工作流程文件如下:

<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"/>

我想使用distcp使用-m设置映射器的数量。 我怎么做我尝试过

<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)

1 个答案:

答案 0 :(得分:1)

Args用于输入/输出,如documentation

中所述
  

第一个arg表示输入,第二个arg表示输出

要更改生产者/减少者的数量,请使用configuration,例如:

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