使用oozie工作流程启动火花程序

Sha*_*arg 6 workflow scala oozie apache-spark

我正在使用一个使用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动作应该如何?它出现在这里类似吗?

nur*_*eta 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>
Run Code Online (Sandbox Code Playgroud)