使用hue+oozi构建任务调度系统
2016-10-12 18:53
363 查看
oozie调度系统调研
1. 关于oozie的简单说明
oozie应用程序目录结构说明:一个完整的oozie应用程序一般情况下至少包含三个文件及目录:job.properties、workflow.xml、lib(lib表示为用来存放程序运行需要的jar包,非必需)
flow nodes的六种类型:
start, end, decision, fork, join, kill
action-node的部分类型:
Hadoop map-reduce, Hadoop file system, Pig, SSH, HTTP, eMail and Oozie sub-workflow,
Oozie可以自定义扩展任务类型。
2. Oozie简介
WorkFlow:工作流,控制工作流的开始和结束过程,以及工作流Job的执行路径,并提供一种机制来控制工作流执行路径(比如:Decision、Fork以及Join节点等)Coordinator:调度器,多个WorkFlow可以组成一个Coordinator,可以把前几个WorkFlow的输出作为后一个WorkFlow的输入,当然也可以定义WorkFlow的触发条件,来做定时触发.
Bundle:控制一个或多个Coordinator应用
3. 一个标准的工作流的示例
![](http://oozie.apache.org/docs/4.2.0/DG_Overview.png)
hPDL流程的定义:
<workflow-app name='wordcount-wf' xmlns="uri:oozie:workflow:0.1"> <start to='wordcount'/> <action name='wordcount'> <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 name='kill'> <message>Something went wrong: ${wf:errorCode('wordcount')}</message> </kill/> <end name='end'/> </workflow-app>
4.在hue中创建一个workflow。
在hue中可以通过拖拽的方式进行workflow.xml的编辑:
![](https://images.cnblogs.com/cnblogs_com/honeybee/842182/o_oozie-workflow-config.png)
hue的任务管理页面:
![](https://images.cnblogs.com/cnblogs_com/honeybee/842182/o_oozie-job%e7%ae%a1%e7%90%86%e9%a1%b5%e9%9d%a2.png)
hue编辑的workflow.xml保存在hdf上的/user/oozie/workspaces/目录下:
/user/oozie/workspaces/hue-oozie-1476263861.83
[fuxin.zhao@db-hadoop-client02 ~]$ hadoop fs -ls /user/oozie/workspaces/hue-oozie-1476263861.83 Found 3 items -rw-r--r-- 3 hue hadoop 114 2016-10-12 17:33 /user/oozie/workspaces/hue-oozie-1476263861.83/job.properties drwxr-xr-x - hue hadoop 0 2016-10-12 17:17 /user/oozie/workspaces/hue-oozie-1476263861.83/lib -rw-r--r-- 3 hue hadoop 1277 2016-10-12 17:33 /user/oozie/workspaces/hue-oozie-1476263861.83/workflow.xml
自动生成的workflow文件内容如下:workflow的大体流程已经自动生成了,自己可以根据需要进行修改。
<workflow-app name="job-test-workflow" xmlns="uri:oozie:workflow:0.5"> <start to="shell-f60d"/> <kill name="Kill"> <message>Action failed, error message[${wf:errorMessage(wf:lastErrorNode())}]</message> </kill> <action name="shell-f60d"> <shell xmlns="uri:oozie:shell-action:0.1"> <job-tracker>${jobTracker}</job-tracker> <name-node>${nameNode}</name-node> <exec>/user/hue/aa.sh</exec> <argument>args1</argument> <argument>args2</argument> <argument>args2</argument> <file>/user/hue/avro-1.7.4.jar#avro-1.7.4.jar</file> <capture-output/> </shell> <ok to="shell-dfe8"/> <error to="Kill"/> </action> <action name="shell-dfe8"> <shell xmlns="uri:oozie:shell-action:0.1"> <job-tracker>${jobTracker}</job-tracker> <name-node>${nameNode}</name-node> <exec>/user/hue/aa.sh</exec> <capture-output/> </shell> <ok to="kill-ece6"/> <error to="Kill"/> </action> <kill name="kill-ece6"> <message>Action failed, error message[${wf:errorMessage(wf:lastErrorNode())}]</message> </kill> <end name="End"/> </workflow-app>
5.提交oozie命令
1 .提交oozie任务 oozie job -oozie http://localhost:11000/oozie/ -config /root/tvreport-workflow/tvreport-daily-wf/job.properties -run 2 .提交kill 任务 oozie job -oozie http://localhost:11000/oozie -kill 0031861-140812111151262-oozie-root-W 3.查看job的日志信息 bin/oozie job -oozie http://hadoop-1:11000/oozie -log 0000001-160702224410648-oozie-beif-W
》》》未完待续。
相关文章推荐
- azkaban任务调度系统部分功能介绍(使用篇)
- 构建ASP.NET MVC5+EF6+EasyUI 1.4.3+Unity4.x注入的后台管理系统--任务调度系统解析
- Azkaban 任务调度系统(使用和小技巧)
- Office 365 利用并行工作流构建威客式任务管理系统之使用SharePoint Designer 定制任务过期提醒!
- 使用gitlab, jenkins搭建CI(持续集成)系统(3) -- 根据不同触发条件执行不同的构建任务
- Office 365 利用并行工作流构建威客式任务管理系统之使用SharePoint Designer 定制威客任务管理流程!
- 使用azkaban 建立一个简单的任务调度系统
- 关于构建一个使用EJB组件的新系统
- 使用 Snort 和 PHP 构建一个小型网络防御系统
- 使用.net Remoting技术构建应用系统架构系列(1)
- 系统管理指南:基本管理 第19 章• 使用软件包命令管理软件(任务)
- Spring学习:使用Spring调度任务
- WPF 线程:使用调度程序构建反应速度更快的应用程序
- 系统管理指南:基本管理 第21 章• 使用Sun PatchManager 管理Solaris 修补程序(任务)
- 【翻译】使用AIR构建的汽车诊断系统Car Diagnostic System built in Adobe AIR
- Quartz任务调度的使用(lp)
- 使用 WebSphere Process Server 构建以人工任务为中心的业务流程,第 2 部分: 自定义 JSP
- 实时系统的调度分析--任务的分类和特征
- AceProject 一款美国程序员在使用的任务管理系统
- WPF中使用调度程序构建反应速度更快的应用程序