【发布时间】:2015-07-16 09:48:38
【问题描述】:
我在 Oozie 中遇到过几个 SparkAction 作业的示例,其中大部分都使用 Java。我稍作编辑并在 Cloudera CDH Quickstart 5.4.0(使用 Spark 版本 1.4.0)中运行示例。
工作流.xml
<workflow-app xmlns='uri:oozie:workflow:0.5' name='SparkFileCopy'>
<start to='spark-node' />
<action name='spark-node'>
<spark xmlns="uri:oozie:spark-action:0.1">
<job-tracker>${jobTracker}</job-tracker>
<name-node>${nameNode}</name-node>
<prepare>
<delete path="${nameNode}/user/${wf:user()}/${examplesRoot}/output-data/spark"/>
</prepare>
<master>${master}</master>
<mode>${mode}</mode>
<name>Spark-FileCopy</name>
<class>org.apache.oozie.example.SparkFileCopy</class>
<jar>${nameNode}/user/${wf:user()}/${examplesRoot}/apps/spark/lib/oozie-examples.jar</jar>
<arg>${nameNode}/user/${wf:user()}/${examplesRoot}/input-data/text/data.txt</arg>
<arg>${nameNode}/user/${wf:user()}/${examplesRoot}/output-data/spark</arg>
</spark>
<ok to="end" />
<error to="fail" />
</action>
<kill name="fail">
<message>Workflow failed, error
message[${wf:errorMessage(wf:lastErrorNode())}]
</message>
</kill>
<end name='end' />
</workflow-app>
job.properties
nameNode=hdfs://quickstart.cloudera:8020
jobTracker=quickstart.cloudera:8032
master=local[2]
mode=client
examplesRoot=examples
oozie.use.system.libpath=true
oozie.wf.application.path=${nameNode}/user/${user.name}/${examplesRoot}/apps/spark
Oozie 工作流示例(Java 中)能够完成并完成其任务。
不过,我已经使用 Python / PySpark 编写了 spark-submit 作业。我尝试删除 <class> 和 jar
<jar>my_pyspark_job.py</jar>
但是当我尝试运行 Oozie-Spark 作业时,日志中出现错误:
Launcher ERROR, reason: Main class [org.apache.oozie.action.hadoop.SparkMain], exit code [2]
我想知道如果我使用 Python / PySpark,我应该在 <class> 和 <jar> 标签中放置什么?
【问题讨论】:
标签: java apache-spark oozie pyspark cloudera-quickstart-vm