Workflow.xml定义了控制节点(start,kill,end)和动作节点action,控制节点控制流程的运行,动作节点定义了作业的任务。
Wordcount的workflow.xml实例
<workflow-app xmlns="uri:oozie:workflow:0.1">
<start to='wordcount'/>
<action>
<map-reduce>
<job-tracker>${jobTracker}</job-tracker>
<name-node>${nameNode}</name-node>
<configuration>
<property>
<name>mapred.mapper.class</name>
<value>org.myorg.WordCount.Map</value>
</property>
<property>
<name>mapred.reducer.class</name>
<value>org.myorg.WordCount.Reduce</value>
</property>
<property>
<name>mapred.input.dir</name>
<value>${inputDir}</value>
</property>
<property>
<name>mapred.output.dir</name>
<value>${outputDir}</value>
</property>
</configuration>
</map-reduce>
<ok to='end'/>
<error to='end'/>
</action>
<kill>
<message>Something went wrong: ${wf:errorCode('wordcount')}</message>
</kill/>
<end/>
</workflow-app>
(3)Lib目录:
在workflow工作流定义的同级目录下,需要有一个lib目录,在lib目录中存在java节点MapReduce使用的jar包。
需要注意的是,oozie并不是使用指定jar包的名称来启动任务的,而是通过指定主类来启动任务的。在lib包中绝对不能存在某个jar包的不同版本,不能够出现多个相同主类。
(4)执行作业流
将job.properties、workflow.xml和lib文件夹放在用户名的目录(${namenode}/user/${user.name})下的max-temp-workflow,复制到HDFS.
%hadoop fs –put Hadoop-examples/target/max-temp-workflow max-temp-workflow.
使用oozie命令行工具设置环境变量OOZIE_URL指定Oozie服务器
%export OOZIE_URL=”:11000/oozie”
运行工作流
% oozie job –config ch06-mr-dev/max-temp-workflow.preoperties –run job:0001-121
–config设置工作流属性文件,内含namenode、资源管理器地址、作业路径(oozie.wf.application.path=${namenode}/user/${user.name}/max-temp-workflow)
-run 参数用于运行指定的作业。
通过-info查看作业状态
%oozie job –info 0001-121
自己开发了一个股票智能分析软件,功能很强大,需要的点击下面的链接获取:
https://www.cnblogs.com/bclshuai/p/11380657.html