一、实现功能
多个action联合操作,实现复杂功能。
二、步骤
1.复制shell实例,这里直接复制之前做的shell,只留下job.properties和workflow.xml
cp -r oozie-apps/shell oozie-apps/hdfs
2.修改job.properties
nameNode=hdfs://hadoop:8020
jobTracker=hadoop:8032
queueName=default
examplesRoot=oozie-apps
oozie.wf.application.path=${nameNode}/user/hadoop/${examplesRoot}/hdfs
3.修改workflow.xml
<workflow-app xmlns="uri:oozie:workflow:0.5" name="hdfs-actions-wf">
<start to="mkdir-node"/>
<action name="mkdir-node">
<fs>
<mkdir path='${nameNode}/input/demo/test'/>
</fs>
<ok to="del-node"/>
<error to="fail"/>
</action>
<action name="del-node">
<fs>
<delete path='${nameNode}/input/demo/test'/>
</fs>
<ok to="move-node"/>
<error to="fail"/>
</action>
<action name="move-node">
<fs>
<move source='${nameNode}/output/part-r-00000' target='${nameNode}/input/demo'/>
</fs>
<ok to="chmod-node"/>
<error to="fail"/>
</action>
<action name="chmod-node">
<fs>
<chmod path='${nameNode}/input/demo' permissions='drwxrwxrw-' dir-files='false' />
</fs>
<ok to="end"/>
<error to="fail"/>
</action>
<kill name="fail">
<message>Shell action failed, error message[${wf:errorMessage(wf:lastErrorNode())}]</message>
</kill>
<end name="end"/>
</workflow-app>
备注:
uri:oozie:workflow:0.5这个值需要参考对应版本官网。
4.上传到HDFS对应目录
bin/hdfs dfs -put /opt/modules/oozie-4.1.0-cdh5.7.0/oozie-apps/hdfs/ /user/hadoop/oozie-apps/
5.提交到oozie webconsole执行
bin/oozie job -oozie http://hadoop:11000/oozie -config oozie-apps/hdfs/job.properties -run
即可~