@xtccc
2016-01-20T13:32:27.000000Z
字数 1754
阅读 2101
Oozie
参考链接:
Workflow app必须被安装在HDFS中,它的目录内容如下:
- /workflow.xml
- /config-default.xml
|
- /lib/ (*.jar; *.so)
Action nodes所需的全部配置文件与脚本文件都应该放在workflow app的HDFS目录之中。
在lib
目录中的所有.jar和.so文件都将被自动添加到map-reduce jobs和pig jobs的classpath
和LD_PATH
中。
bin/oozie job -oozie http://[OOZIE_URL]:11000/oozie -config [PATH_TO_JOB.PROPERTIES] -run
bin/oozie validate [LOCAL_PATH_TO_WORFKLOW_XML]
bin/oozie job -oozie http://[OOZIE_URL]:11000/oozie -info [WORKFLOW_JOB_ID]
需求
- 删除目录
/user/tao/outputPath
- 新建目录
/user/tao/new-Output
- 创建文件
/user/tao/my-test-file.data
- 将新建的文件move to新建的目录中
实现步骤
首先创建本地目录 /disk1/users/tao/oozie/examples/apps/xt
,然后在该目录下创建2个文件
job.properties文件
namenode=hdfs://nameservice1
jobTracker=ecs2:njzd.com:8032
HdfsDir=${namenode}/user/tao
oozie.wf.application.path=${namenode}/user/tao/oozie/examples/apps/xt/workflow.xml
workflow.xml文件
<workflow-app name="xt-fs-wf" xmlns="uri:oozie:workflow:0.5">
<start to="fs-node"/>
<action name="fs-node">
<fs>
<delete path='${HdfsDir}/outputPath'/>
<mkdir path='${HdfsDir}/new-Output'/>
<touchz path='${HdfsDir}/my-test-file.data'/>
<move source='${HdfsDir}/my-test-file.data' target='${HdfsDir}/new-Output'/>
</fs>
<ok to="end-node"/>
<error to="kill-node"/>
</action>
<kill name="kill-node">
<message>The action Fs(HDFS) is killed</message>
</kill>
<end name="end-node"/>
</workflow-app>
部署运行
/disk1/users/tao/oozie/examples/apps/xt
放入HDFS目录/user/tao/oozie/examples/apps
其中,ecs3.njzd.com
是Oozie server所在的节点,11000
是Oozie Http Port,hdfs://nameservice1
是HDFS HA的URL,ecs2:njzd.com:8032
是YARN的ResourceManager
在运行时,HDFS中并不需要存在文件job.properties
,但是在运行提交命令时它必须存在于本地文件系统中。