有几种添加依赖瓶的方法。我会在HDFS中创建一个名为lib的目录,并在其中放置罐子(ojdbc7.jar
)。 Oozie会自动将这些罐子用于该工作流程中的所有操作。
workflow.xml
<workflow-app name="sample-wf" xmlns="uri:oozie:workflow:0.1">
<action name="myfirstsparkjob">
<spark xmlns="uri:oozie:spark-action:0.1">
<job-tracker>[JOB-TRACKER]</job-tracker>
<name-node>[NAME-NODE]</name-node>
<prepare>
<delete path="${jobOutput}"/>
</prepare>
<master>yarn</master>
<mode>client<mode>
<name>Spark DF to Oracle</name>
<class>com.spark.sql.jdbc.SparkDFtoOracle</class>
<jar>hdfs/path/to/testOracleJdbcDF.jar</jar>
<spark-opts>--driver-class-path path_to-some_other_jar </spark-opts>
</spark>
<ok to="myotherjob"/>
<error to="errorcleanup"/>
</action>
</workflow-app>
Spark Action Extension in Ozzie
关于你的火花提交:
在你的火花提交没有必要的,因为作为值是一样的--jars
。检查说明:
要传递给驱动程序的额外类路径条目。请注意,jar添加了 ,而--jar自动包含在类路径中。
由于大小和时间的限制,我建议不要使用'fat jar'来复制群集。在ozzie共享位置复制未解决的maven jar,并将其用于所有火花应用。 – mrsrinivas
在我的情况下,我们使用fat jar,在本地系统中安装ojdbc7.jar,在pom文件中添加了依赖项。 jar的大小不超过3 MB。有了这个,我们不需要在中做任何增加。 –