2

クランチジョブを実行するアプリケーションがあります。Java アクションを使用してこのジョブを実行するように Oozie を構成しようとしています。私の行動は以下のとおりです。

    <workflow-app name="Wworkflow" xmlns="uri:oozie:workflow:0.4">
<start to="TestWw"/>
<action name="TestWw">
    <java>
        <job-tracker>${jobTracker}</job-tracker>
        <name-node>${nameNode}</name-node>
        <configuration>
            <property>
                <name>mapred.job.queue.name</name>
                <value>launcher</value>
            </property>
        </configuration>
        <main-class>com.test.Main</main-class>
        <java-opts>-Dmapred.output.compress=false -Dmapred.textoutputformat.separator=, -Dcrunch.disable.output.counters=true</java-opts>

    </java>
    <ok to="end"/>
    <error to="kill"/>
</action>
<kill name="kill">
    <message>Action failed, error message[${wf:errorMessage(wf:lastErrorNode())}]</message>
</kill>
<end name="end"/>

しかし、Oozie ジョブを実行するたびに、ジョブがスローされます。

     org.apache.hadoop.ipc.RemoteException(java.io.IOException): Queue "default" does not exist

キューをランチャーに設定しましたが、oozie はこの属性を使用しません。

内部マップ削減ジョブであるクランチ ジョブを実行していることに注意してください。

4

1 に答える 1

4

Oozie アクションが開始されると、YARN でランチャー アプリケーションが作成され、ジョブ自体が開始されます。ランチャーはアクション自体とは異なるキューで実行でき、ランチャーが実行されるキューは実際には で設定されoozie.launcher.mapred.job.queue.nameます。ランチャーが で実行しようとしてdefaultいるために、Crunch ジョブ自体が実際に開始されていないと思われます。

これを設定すると、問題が解決するはずです:

<property>
       <name>oozie.launcher.mapred.job.queue.name</name>
       <value>launcher</value>
</property>

余談ですmapred.job.queue.nameが、非推奨になりました - use mapreduce.job.queuename.

于 2015-11-06T10:14:26.787 に答える