2016-07-14 6 views
0

Я пытаюсь создать искру действий в Oozie для следующей команды:Oozie - Спарк Действие> где добавить ojdbc.jar к оракулу доступа 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 

Это дает N число ошибок в Oozie. Я использовал шаблон workflow.xml из oozie-examples.tar.gz.

Может ли кто-нибудь помочь мне решить проблему?

ответ

0

Существует несколько способов добавления банок зависимости. Я бы создал каталог с именем lib рядом с workflow.xml в HDFS и разместил там банки (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. check --driver-class-path описание:

Элементы пути дополнительного класса, которые необходимо передать водителю. Обратите внимание, что добавленные jars с --jars автоматически включаются в путь к классам.

0

Установите Ojdbc7.jar в Maven и добавьте ниже зависимостей в файл pom.xml

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

Построить банку с зависимостями.

+0

Я бы порекомендовал не идти с 'fat jar' из-за размера и времени для копирования в кластер. копирование неразрешенных ящиков maven в общем местоположении ozzie и использование его для всех искровых приложений. – mrsrinivas

+0

В моем случае мы используем кусок жира, установленный ojdbc7.jar в локальной системе, добавили зависимость в файле pom. Размер банки не более 3 МБ. При этом нам не нужно делать никаких дополнений в . –