Oozie - Spark Action>在哪里添加ojdbc.jar来访问oracle JDBC

时间:2016-07-14 21:25:22

标签: oracle apache-spark oozie ojdbc

我正在尝试在Oozie中为以下命令创建一个Spark Action:

spark-submit --master yarn --class com.spark.sql.jdbc.SparkDFtoOracle --jars /home/oracle/ojdbc7.jar --driver-class-path /home/oracle/ojdbc7.jar testOracleJdbcDF.jar > tmp

这在Oozie中给出了N个错误。我使用了oozie-examples.tar.gz。

中的workflow.xml模板

有人可以帮我解决这个问题吗?

2 个答案:

答案 0 :(得分:0)

有几种方法可以添加依赖项jar。我在HDFS中的workflow.xml旁边创建了一个名为 lib 的目录,并在其中放置了jars(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

关于你的火花提交:

在您的点火提交中,不需要提交--driver-class-path,因为该值与--jars相同。检查--driver-class-path说明:

  

要传递给驱动程序的额外类路径条目。请注意,罐子添加   with --jars会自动包含在类路径中。

答案 1 :(得分:0)

在Maven中安装Ojdbc7.jar并在POM.xml文件中添加以下依赖项

<dependency>
   <groupId>oracle.jdbc.driver</groupId>
   <artifactId>oraclethin</artifactId>
   <version>12c</version>
</dependency>

使用依赖项构建jar。