- 创建工作目录
-
在oozie-apps/shell目录下创建两个文件——job.properties和workflow.xml文件
-
配置job.properties
#HDFS地址 nameNode=hdfs://hadoop111:8020 #ResourceManager地址,默认端口8032 jobTracker=hadoop112:8032 #队列名称 queueName=default examplesRoot=oozie-apps #这里指定的是job.properties和workflow.xml文件上传到hdfs上的路径 #结果:http://192.168.191.111:8020/user/kgf/oozie-apps/shell oozie.wf.application.path=${nameNode}/user/${user.name}/${examplesRoot}/shell
-
配置workflow.xml文件
<workflow-app xmlns="uri:oozie:workflow:0.4" name="shell-wf"> <!--开始节点--> <start to="shell-node"/> <!--动作节点--> <action name="shell-node"> <!--shell动作,对应job.properties里面的配置--> <shell xmlns="uri:oozie:shell-action:0.2"> <job-tracker>${jobTracker}</job-tracker> <name-node>${nameNode}</name-node> <configuration> <property> <name>mapred.job.queue.name</name> <value>${queueName}</value> </property> </configuration> <!--要执行的脚本,就是使用mkdir创建一个/usr/local/module/oozie-4.0.0-cdh5.3.6/test1路径--> <exec>mkdir</exec> <argument>/usr/local/module/oozie-4.0.0-cdh5.3.6/test1</argument> <capture-output/> </shell> <ok to="end"/> <error to="fail"/> </action> <!--kill节点--> <kill name="fail"> <message>Shell action failed, error message[${wf:errorMessage(wf:lastErrorNode())}]</message> </kill> <!--结束节点--> <end name="end"/> </workflow-app>
-
上传任务配置到hdfs上的路径
-
执行任务,在/usr/local/module/oozie-4.0.0-cdh5.3.6目录下
命令:
bin/oozie job -oozie http://hadoop111:11000/oozie -config oozie-apps/shell/job.properties -run
-
效果