2016-07-14 41 views
0

我试图创建下面的命令在Oozie的火花行动:Oozie的 - 星火行动>哪里ojdbc.jar添加访问Oracle JDBC

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模板。

任何人都可以请帮我解决这个问题吗?

回答

0

有几种添加依赖瓶的方法。我会在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自动包含在类路径中。

0

在Maven的安装Ojdbc7.jar并添加的pom.xml以下依赖文件

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

建立与依赖关系的罐子。

+0

由于大小和时间的限制,我建议不要使用'fat jar'来复制群集。在ozzie共享位置复制未解决的maven jar,并将其用于所有火花应用。 – mrsrinivas

+0

在我的情况下,我们使用fat jar,在本地系统中安装ojdbc7.jar,在pom文件中添加了依赖项。 jar的大小不超过3 MB。有了这个,我们不需要在中做任何增加。 –