Как передать аргументы в действии Java в рабочем процессе oozie? - PullRequest
0 голосов
/ 27 мая 2019

Я пытаюсь создать рабочий процесс Oozie с одним действием - действием Java для запуска программы для анализа файла Excel внутри HDFS, поэтому, чтобы эта программа Java проанализировала файл, мне нужно передать ему местоположениефайл, без рабочего процесса oozie Я просто вызываю файл jar с нужными мне аргументами:

   java -jar myJarFile.jar hdfs:///path/to/the/file.xlsx 

Теперь в действии java внутри рабочего процесса oozie мне нужно написать что-то вроде:

<action name="parse-file">
 <java>
  <job-tracker>${jobTracker}</job-tracker>
  <name-node>${nameNode}</name-node>
  <main-class>parseFile</main-class>
  <arg>path/to.the/file.xlsx</arg>
  <file>lib/myJarFile.jar#myJarFile.jar</file>
 </java>
 <ok to="sen-success-email"/>
 <error to="failed-notification-email"/>
</action>

Является ли этот подход правильным?

1 Ответ

1 голос
/ 04 июня 2019
  • Действие Java выполнит public static void main(String[] args) вашего класса.Убедитесь, что вы используете полностью указанное имя пакета.Например, a.b.c.MainClass
  • Вам не нужен тег <file>, если вы храните myJarFile.jar в каталоге lib рядом с workflow.xml на HDFS.Например:
workflow_dir/workflow.xml
workflow_dir/lib
workflow_dir/lib/myJarFile.jar
  • Убедитесь, что вы также загружаете все зависимости с вашим рабочим процессом.

Ссылки:

...