Oozie Spark Action 配置 Spark Action 用來運行spark 任務,流程任務必須等當前節點的spark任務執行完成之後才能執行後續節點任務。運行Spark Job,必須在 spark action裡面配置 job-tracer,name-node,master,和一些必要 ...
Oozie Spark Action 配置
- Spark Action 用來運行spark 任務,流程任務必須等當前節點的spark任務執行完成之後才能執行後續節點任務。
- 運行Spark Job,必須在 spark action裡面配置 job-tracer,name-node,master,和一些必要的參數和配置。
- Spark options 可以用 " spark-opts" 元素來配置
- 同Shell Action一樣 Spark Action 可以配置成創建或者刪除HDFS目錄之後再去執行一個Sqoop任務
- Spark 應用的配置可以使用job-xml文件中的元素,也可以使用內部元素來配置,像EL表達式也支持在內部元素中的配置,內部元素的配置可以覆蓋外部文件中的配置。
Spark Action格式
123456789101112131415161718192021222324252627282930313233343536 | <workflow-app name="[WF-DEF-NAME]" xmlns="uri:oozie:workflow:0.3"> ... <action name="[NODE-NAME]"> <spark xmlns="uri:oozie:spark-action:0.1"> <job-tracker>[JOB-TRACKER]</job-tracker> <name-node>[NAME-NODE]</name-node> <prepare> <delete path="[PATH]"/> ... <mkdir path="[PATH]"/> ... </prepare> <job-xml>[SPARK SETTINGS FILE]</job-xml> <configuration> <property> <name>[PROPERTY-NAME]</name> <value>[PROPERTY-VALUE]</value> </property> ... </configuration> <master>[SPARK MASTER URL]</master> <mode>[SPARK MODE]</mode> <name>[SPARK JOB NAME]</name> <class>[SPARK MAIN CLASS]</class> <jar>[SPARK DEPENDENCIES JAR / PYTHON FILE]</jar> <spark-opts>[SPARK-OPTIONS]</spark-opts> <arg>[ARG-VALUE]</arg> ... <arg>[ARG-VALUE]</arg> ... </spark> <ok to="[NODE-NAME]"/> <error to="[NODE-NAME]"/> </action> ...</workflow-app> |
- prepare 元素 如果存在,表明在執行sqoop 命令之前需要執行的一系列 hdfs路徑的創建和刪除操作,並且路徑必須以 hdfs://HOST:PORT 開頭
- job-xml 元素 如果存在,則作為sqoop任務的配置文件,從 schema 0.3開始支持多個job-xml元素用來支持多個job.xml文件
- configuration 用來給spark任務傳遞參數
- master用來指定spark master 例如: spark://host:port, mesos://host:port, yarn-cluster, yarn-master, or local.
- mode以集群或者客戶端的模式運行spark 程式 例如 :client,cluster
- name spark 應用的名稱
- classspark運行程式的主類名
- jarspark 應用需要引用的其它jar包
- spark-opts提交給驅動程式的參數。比如--conf key=value或者是在oozie-site.xml中配置的oozie.service.SparkConfiguationService.spark.configurations
- arg spark 應用參數
Spark Action 使用實例一:Oozie自帶案例運行,使用oozie調度spark程式1,首先下載Oozie自帶的例子,解壓,打開到 examples\apps\spark 目錄,根據自己的安裝環境修改之後的job.properties文件如下
1234567 | nameNode=hdfs://hadoop-node1.novalocal:8020jobTracker=hadoop-node1.novalocal:8021master=local[*]queueName=defaultexamplesRoot=xwj_testoozie.use.system.libpath=trueoozie.wf.application.path=${nameNode}/user/oozie/${examplesRoot}/apps/spark |
12345678910111213141516171819202122232425262728 | <workflow-app xmlns='uri:oozie:workflow:0.5' name='SparkFileCopy'> <start to='spark-node' /> <action name='spark-node'> <spark xmlns="uri:oozie:spark-action:0.1"> <job-tracker>${jobTracker}</job-tracker> <name-node>${nameNode}</name-node> <prepare> <delete path="${nameNode}/user/oozie/${examplesRoot}/apps/spark/output"/> </prepare> <master>${master}</master> <name>Spark-FileCopy</name> <class>org.apache.oozie.example.SparkFileCopy</class> <jar>${nameNode}/user/oozie/${examplesRoot}/apps/spark/lib/oozie-examples.jar</jar> <arg>${nameNode}/user/oozie/${examplesRoot}/apps/spark/input/data.txt</arg> <arg>${nameNode}/user/oozie/${examplesRoot}/apps/spark/output</arg> </spark> <ok to="end" /> <error to="fail" /> </action> <kill name="fail"> <message>Workflow failed, error message[${wf:errorMessage(wf:lastErrorNode())}] </message> </kill> <end name='end' /></workflow-app> |