命令行方式
最常用的就是通过命令行方式提交,见YARN和HDFS的调用方式汇总中的“使用oozie提交yarn作业环节。
REST方式
使用REST的方式显然更通用,当然原理与上述完全一致。
步骤1–创建工作空间目录
首先在HDFS上创建相应工作空间目录–/user/${user.name}/workspaces
,放置oozie要用到的workflow.xml,并创建lib文件夹,里面放置打好的jar包,如下图。注:我这里的user.name变量的值是“hdfs”。
完整的workflow文件如下,里面变量${inputDir}
、${outputDir}
等的值需要从下一步骤产生的config.xml文件中获取。
特别注意:此处应该把原MR程序中所有的作业设置参数都拿过来,否则即使作业提交成功,结果也不正确!!!
<workflow-app name="test-wordcount" xmlns="uri:oozie:workflow:0.4">
<start to="test-wordcount"/>
<action name="test-wordcount">
<map-reduce>
<job-tracker>${jobTracker}</job-tracker>
<name-node>${nameNode}</name-node>
<configuration>
<property>
<name>mapreduce.input.fileinputformat.inputdir</name>
<value>${inputDir}</value>
</property>
<property>
<name>mapreduce.output.fileoutputformat.outputdir</