Невозможно установить mapred.job.queue.name в java-действии Oozie.

У меня есть приложение, которое выполняет критические задания. Я пытаюсь настроить Oozie для запуска этого задания с помощью действия Java. Мои действия, как указано ниже,

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

But everytime I run the Oozie job, my job throws

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

Я настроил очередь как средство запуска, но oozie просто не использует этот атрибут.

Обратите внимание, что я выполняю кранч-задачи, которые являются просто внутренними заданиями по уменьшению карты.


person Tanveer Dayan    schedule 06.11.2015    source источник


Ответы (1)


Когда действие 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 устарел — используйте mapreduce.job.queuename.

person Ben Watson    schedule 06.11.2015
comment
Это удивительно - это действительно должно работать. Я полагаю, вы получаете ту же ошибку, что и раньше? Я никогда раньше не удалял очередь default, но это не имеет значения, если у вас установлено указанное выше свойство. - person Ben Watson; 06.11.2015
comment
Да, я получаю ту же ошибку, что и раньше. Очередь по умолчанию не существует - person Tanveer Dayan; 06.11.2015