Ошибка запуска Sqoop Action с использованием Oozie в кластере Hadoop

Я пытаюсь успешно запустить sqoop-действие в Oozie с помощью кластера Hadoop. Всякий раз, когда я проверяю статус заданий, Oozie возвращается со следующим обновлением статуса:

действия

ID Status Ext ID Ext Статус Код ошибки

0000037-140930230740727-oozie-oozi-W@: начало: ОК - ОК -

0000037-140930230740727-oozie-oozi-W @ sqoop-load ERROR job_1412278758569_0002 FAILED / KILLEDJA018

0000037-140930230740727-oozie-oozi-W @ sqoop-load-fail OK - OK E0729

Что заставляет меня верить, что в моем рабочем процессе нет ничего плохого, в отличие от какого-то разрешения, которое я пропускаю.

Мой конфиг jobs.properties:

  nameNode=hdfs://mynamenode.demo.com:8020
    jobTracker=mysnamenode.demo.com:8050
    queueName=default
    workingRoot=working_dir
    jobOutput=/user/test/out
    oozie.use.system.libpath=true
    oozie.libpath=/user/oozie/share/lib
    oozie.wf.application.path=${nameNode}/user/test/${workingRoot}

MyWorkFlow.xml:

<?xml version="1.0" encoding="UTF-8"?>
<workflow-app xmlns='uri:oozie:workflow:0.4' name='sqoop-workflow'>
<start to='sqoop-load' />

<action name="sqoop-load">
<sqoop xmlns="uri:oozie:sqoop-action:0.2">
<job-tracker>${jobTracker}</job-tracker>
<name-node>${nameNode}</name-node>


<prepare>
<delete path="${nameNode}/user/test/${workingRoot}/out-data/sqoop" />
<mkdir path="${nameNode}/user/test/${workingRoot}/out-data"/>
</prepare>



<configuration>
<property>
<name>mapred.job.queue.name</name>
<value>${queueName}</value>
</property>
</configuration>

<command>import --connect jdbc:oracle:thin:@10.100.50.102:1521/db --username myID --password myPass --table SomeTable -target-dir /user/test/${workingRoot}/out-data/sqoop    </command>

</sqoop>
<ok to="end"/>
<error to="sqoop-load-fail"/>
</action>
<kill name="sqoop-load-fail">
<message>Sqoop export failed, error message[${wf:errorMessage(wf:lastErrorNode())}]</message>
</kill>

<end name='end' />
</workflow-app>

Шаги, которые я предпринял:

  • Поиск ошибки... не нашел ничего, что я упоминал ранее
  • проверка того, что требуемый файл ojdbc.jar является исполняемым и что каталог /user/oozie/share/lib/sqoop доступен в HDFS
  • проверка, есть ли у меня какие-либо существующие каталоги, которые могут вызывать проблемы

Я искал в Интернете и мои файлы журнала для ответа.... любая помощь будет высоко ценится....

Обновить:

Хорошо... поэтому я добавляю ВСЕ jar-файлы в /usr/lib/sqoop/lib в /user/oozie/share/lib/sqoop. Я все еще получаю те же ошибки. проверка журнала работы... есть то, что я не публиковал ранее:

2014-10-03 11: 16: 35 586 ПРЕДУПРЕЖДЕНИЕ CoordActionUpdateXCommand:542 - ПОЛЬЗОВАТЕЛЬ [ambari-qa] GROUP[-] TOKEN[] APP[sqoop-workflow] JOB[0000015-141002171510902-oozie-oozi-W] ДЕЙСТВИЕ [-] E1100: предварительное условие для команды не выполняется перед выполнением, [, действие по координации равно нулю], код ошибки: E1100

Как вы видите, я выполняю задание как "Суперпользователь"..... и ошибка точно такая же. Так что это не может быть проблемой разрешения. Я думаю, что есть JAR, который требуется, кроме тех, которые должны быть в каталоге /user/oozie/share/lib/sqoop..... возможно, мне нужно скопировать банки для mapreduce, чтобы быть в / user / oozie / поделиться /lib/mapreduce?

2 ответа

Решение

Хорошо... проблема решена.

Очевидно, что КАЖДЫЙ компонент рабочего процесса / задания Oozie должен иметь соответствующие *.jar-зависимости, загруженные в каталоги Oozie SharedLib(/user/oozie/share/lib/), соответствующие этим компонентам.

Я скопировал ВСЕ *.jars в /usr/lib/sqoop/lib в -> /user/oozie/share/lib Я скопировал ВСЕ *.jars в /usr/lib/oozie/lib в -> / user / oozie / доля / Библиотека / oozie

После повторного запуска задания.... рабочий процесс остановился, и приведенная ошибка отличалась от предыдущей.... а именно, что на этот раз.... рабочий процесс пытался создать каталог на HDFS, который уже существовал, поэтому я удалил этот каталог и снова запустил работу.....

УСПЕХ!

Примечание: людям действительно нужно писать лучшие сообщения об исключениях. Если бы это было просто проблемой, то у нескольких людей было бы... тогда хорошо... но это просто не тот случай. Эта конкретная ошибка приводит к тому, что более чем несколько человек подходят друг другу, если запросы о помощи онлайн являются признаком.

Я столкнулся с той же проблемой. Просто добавив

<archive>path/in/hdfs/ojdbc6.jar#ojdbc6.jar</archive>

в мой workflow.xml в <sqoop> </sqoop> теги работали для меня. Получил ссылку здесь.

Другие вопросы по тегам