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。有了這個,我們不需要在中做任何增加。 –