Можно ли запустить действие Oozie Spark без указания inputDir & outputDir - PullRequest
0 голосов
/ 24 мая 2018

Согласно https://oozie.apache.org/docs/3.3.1/WorkflowFunctionalSpec.html#a4.1_Workflow_Job_Properties_or_Parameters мы знаем ..

When submitting a workflow job for the workflow definition above, 3 workflow job properties must be specified:

jobTracker:
inputDir:
outputDir:

У меня есть скрипт PySpark, в котором указаны места ввода и вывода в самом скрипте.Мне не нужны и не нужны inputDir и outputDir в моем XML рабочего процесса.При запуске моего скрипта PySpark через Oozie, я получаю это сообщение об ошибке.

WARN ParameterVerifier:523 - SERVER[<my_server>] USER[-] GROUP[-] TOKEN[-] APP[-] JOB[-] ACTION[-] The application does not define formal parameters in its XML definition

 WARN JobResourceUploader:64 - SERVER[<my_server>] Hadoop command-line option parsing not performed. Implement the Tool interface and execute your application with ToolRunner to remedy this.

2018-05-24 11:52:29,844  WARN JobResourceUploader:171 - SERVER[<my_server>] No job jar file set.  User classes may not be found. See Job or Job#setJar(String).

Исходя из https://github.com/apache/oozie/blob/master/core/src/main/java/org/apache/oozie/util/ParameterVerifier.java, мое первое предупреждение вызвано тем, что у меня нет "inputDir"

else {
                // Log a warning when the <parameters> section is missing
                XLog.getLog(ParameterVerifier.class).warn("The application does not define formal parameters in its XML "
                        + "definition");
            }

Можно ли вообще обойти это?

Обновление - моя структура XML

<action name="spark-node">
      <spark xmlns="uri:oozie:spark-action:0.1" >
         <job-tracker>${jobTracker}</job-tracker>
         <name-node>${nameNode}</name-node>
         <configuration>
             <property>
                <name>mapred.job.queue.name</name>
                <value>${queueName}</value>
             </property>
             <property>
                <name>mapred.input.dir</name>
                <value>${inputDir}</value>
             </property>
             <property>
                <name>mapred.output.dir</name>
                <value>${outputDir}</value>
             </property>
         </configuration>
         <master>yarn-master</master>
         <!-- <mode>client</mode>  -->
         <name>oozie_test</name>
         <jar>oozie_test.py</jar>
          <spark-opts>--num-executors 1 --executor-memory 10G --executor-cores  1 --driver-memory 1G</spark-opts>
      </spark>
      <ok to="end" />
      <error to="fail" />
   </action>
...