我正在使用一个使用spark包的scala程序。 目前我使用来自网关的bash命令运行程序: / homes / spark / bin / spark-submit --master yarn-cluster --class" com.xxx.yyy.zzz" --driver-java-options" -Dyyy.num = 5" a.jar arg1 arg2
我想开始使用oozie来运行这份工作。我有一些挫折:
我应该在哪里放置spark-submit可执行文件?在hfs? 如何定义火花动作?应该在哪里出现--driver-java-options? oozie动作应该如何?它与出现here的那个相似吗?
答案 0 :(得分:6)
如果你有足够新的oozie版本,你可以使用oozie的spark任务:
https://github.com/apache/oozie/blob/master/client/src/main/resources/spark-action-0.1.xsd
否则你需要执行一个调用spark的java任务。类似的东西:
<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>