2015-03-24 8 views
6

Ich arbeite mit einem Scala-Programm mit Spark-Pakete. Zur Zeit verwende ich das Programm mit dem Bash-Befehl vom Gateway: /home/spark/bin/spark-supply --master Garn-Cluster - Klasse "com.xxx.yyy.zzz" - Treiber-Java-Optionen "-Dyyy.num = 5" a.jar arg1 arg2Starten eines Funken-Programms mit Oozie-Workflow

Ich würde gerne mit oozie arbeiten, um diesen Job zu erledigen. Ich habe ein paar Rückschläge:

Wo sollte ich die Spark-Submit ausführbare Datei? auf der hfs? Wie definiere ich die Funkenaktion? Wo sollen die --driver-java-Optionen erscheinen? Wie sollte die Oozie-Aktion aussehen? ist es ähnlich dem, der here erscheint?

Antwort

6

Wenn Sie eine neue Version von genug Oozie haben, können Sie Oozie die Funken Aufgabe verwenden:

https://github.com/apache/oozie/blob/master/client/src/main/resources/spark-action-0.1.xsd

Andernfalls müssen Sie eine Java-Aufgabe auszuführen, die Funken nennen. Etwas wie:

<java> 
     <main-class>org.apache.spark.deploy.SparkSubmit</main-class> 

     <arg>--class</arg> 
     <arg>${spark_main_class}</arg> -> this is the class com.xxx.yyy.zzz 

     <arg>--deploy-mode</arg> 
     <arg>cluster</arg> 

     <arg>--master</arg> 
     <arg>yarn</arg> 

     <arg>--queue</arg> 
     <arg>${queue_name}</arg> -> depends on your oozie config 

     <arg>--num-executors</arg> 
     <arg>${spark_num_executors}</arg> 

     <arg>--executor-cores</arg> 
     <arg>${spark_executor_cores}</arg> 

     <arg>${spark_app_file}</arg> -> jar that contains your spark job, written in scala 

     <arg>${input}</arg> -> some arg 
     <arg>${output}</arg>-> some other arg 

     <file>${spark_app_file}</file> 

     <file>${name_node}/user/spark/share/lib/spark-assembly.jar</file> 
    </java> 
+0

Eine andere Option ist eine Shell-Aktion zu starten. Haben Sie Gründe, warum eine Java-Aktion bevorzugt werden sollte? – Irene

+1

besser: Spark Action> Java Action> Shell Aktion. Da Sie nicht wissen, auf welchem ​​Knoten die Shell ausgeführt wird, müssen Sie sicherstellen, dass alle Knoten die Abhängigkeiten für das Shell-Skript haben. – soulmachine

+0

Die Datei spark-assembly.jar ist ab Spark v2.0.0 nicht mehr gültig - https: //issues.apache.org/jira/browse/SPARK-11157 – xgMz