Oozie: Запустить действие Map-Reduce от Oozie <java>?

Я пытаюсь выполнить задачу Map-Reduce в рабочем процессе Oozie, используя<java> действие.

O'Reilley-хApache Oozie (Ислам и Шринивасан 2015) отмечает, что:

Хотя это и не рекомендуется, действие Java можно использовать для запуска заданий Hadoop MapReduce, поскольку задания MapReduce - это всего лишь программы на Java. Вызванный основной класс может быть драйвером Hadoop MapReduce и может вызывать API Hadoop для запуска задания MapReduce. В этом режиме Hadoop порождает больше картографов и редукторов по мере необходимости и запускает их в кластере.

Тем не менее, я не пользуюсь этим подходом.

Определение действия в рабочем процессе выглядит следующим образом:

<java>
    <!-- Namenode etc. in global configuration -->
    <prepare>
      <delete path="${transformOut}" />
    </prepare>
    <configuration>
        <property>
            <name>mapreduce.job.queuename</name>
            <value>default</value>
        </property>
    </configuration>
    <main-class>package.containing.TransformTool</main-class>
    <arg>${transformIn}</arg>
    <arg>${transformOut}</arg>
    <file>${avroJar}</file>
    <file>${avroMapReduceJar}</file>
</java>

Реализация инструментаmain() реализация выглядит так:

public static void main(String[] args) throws Exception {
    int res = ToolRunner.run(new TransformTool(), args);
    if (res != 0) {
        throw new Exception("Error running MapReduce.");
    }
}

Рабочий процесс будет аварийно завершаться с исключением «Ошибка при запуске MapReduce» выше каждый раз;Как мне получить выходные данные MapReduce для диагностики проблемы? Есть ли проблема с использованием этогоTool запустить приложение MapReduce? Я использую неправильные вызовы API?

Я крайне не склонен использовать Oozie<map-reduce> действие, поскольку каждое действие в рабочем процессе опирается на несколько отдельно версий версий схем AVRO.

В чем здесь проблема? Я использую «новый»mapreduce API для задачи.

Спасибо за любую помощь.

Ответы на вопрос(1)

Ваш ответ на вопрос