您现在的位置 >> Hadoop教程 >> Hadoop实战 >> hadoop专题  
 

HADOOP工作流调度系统OOZIE

【作者:Hadoop实战专家】【关键词:工作流 运行 wordcount 】 【点击:9988次】【2013-10-1】
开始节点就表示从该节点开始运行.* Oozie工作流提供各种类型的Action用于支持不同的需要,如Hadoop Map/Reduce,Hadoop File System,Pig,SSH,HTTP,Email,Java,以及Oozie子流程.* coordinator – 它构建在workflow工作方式之上,提供定时运行和触发运行任务的功能。  

相关热门搜索:

大数据标签:hadoop mapreduce bigdata

Oozie是什么?
Oozie工作流都包含什么?
Oozie任务分为几种模式?
Shell Action的作用是什么?

Oozie是一个管理hadoop任务的工作流/协调系统。Oozie工作流中拥有多个Action,如Hadoop Map/Reuce job,Hadoop Pig job等,所有的Action以有向无环图(DAG Direct Acyclic Graph)的模式部署运行。所以在Action的运行步骤上是有方向的,只能上一个Action运行完成后才能运行下一个Action。

Jigmy.png (807.49 KB, 下载次数: 0)

  

2014-4-9 01:15 上传

Oozie工作流
* Oozie工作流通过HPDL(一种通过XML自定义处理的语言,类似JBOSS JBPM的JPDL)来构造。
* Oozie工作流中的Action在运程系统运行如(Hadoop,Pig服务器上).一旦Action完成,远程服务器将回调Oozie的接口并通知Action已经完成,这时Oozie又会以同样的方式执行工作流中的下一个Action,直到工作流中所有Action都完成(完成包括失败)。
* Oozie工作流中包含可控制的工作流节点(control flow node)和Action节点(action node)。
* Control flow node其实可以理解为Oozie的语法,比如可以定义开始(start),结束(end),失败(fail)节点.开始节点就表示从该节点开始运行.同时也提供一种机制去控制工作流的执行过程,如选择(decision),并行(fork),join节点。
* Oozie工作流提供各种类型的Action用于支持不同的需要,如Hadoop Map/Reduce,Hadoop File System,Pig,SSH,HTTP,Email,Java,以及Oozie子流程.Oozie也支持自定义扩展以上各种类型的Action。
* Oozie工作流允许自定义参数,如${inputDir}。

例如wordcount的例子:启动后执行”mapreduce wordcount”,如果成功执行end,如果失败执行kill。
其workflow.xml定义如下:

1. 

2.     

3.     

4.         

5.             ${jobTracker}

6.             ${nameNode}

7.             

8.                 

9.                     mapred.mapper.class

10.                     org.apache.WordCount.Map

11.                 

12.                 

13.                     mapred.reducer.class

14.                     org.apache.WordCount.Reduce

15.                 

16.                 

17.                     mapred.input.dir

18.                     ${inputDir}

19.                 

20.                 

21.                     mapred.output.dir

22.                     ${outputDir}

23.                 

24.             

25.         

26.         

27.         

28.     

29.     

30.         Something went wrong: ${wf:errorCode('wordcount')}

31.     

32.     

33. 

复制代码

配置打包后通过OozieClient提交给Hadoop就直接可以运行了
任务种类Oozie任务分为三种模式:

* workflow – 这种方式最简单,就是定义DAG来执行。
* coordinator – 它构建在workflow工作方式之上,提供定时运行和触发运行任务的功能。
* bundle – bundle的作用就是将多个coordinator管理起来。这样我们只需要提供一个bundle提交即可。然后可以start/stop/suspend/resume任何coordinator。

Shell Action如果想通过Oozie调度远程服务器上的命令,可以通过ssh action来执行任意的shell命令。用户必须明确的上传所需要的第三方库。Oozie通过Hadoop的分布式缓冲来上传、打标签、使用。
Shell命令会在任意一个hadoop计算节点上运行,但是计算节点上默认安装的工具集可能会不一样。不过在所有的计算节点上,通常都装有大部分普通的unix工具。因此需要明确的很重要的一点是:Oozie只支持有被安装到计算节点上的命令或者通过分布式缓存上传的命令。也就是说,我们必须通过file上传我们要用到的文件。

rigongyizu

大数据系列hadoop相关文章:

最新评论
无与伦比2014-09-10 06:01:58
处理一个500M的文件
汪汪2014-09-09 10:05:48
hadoop 2.2.0终于在64位机器上编译成功了,失败是成功之母,绝对亲生的,嘻嘻
孙元浩pixelray2014-09-09 01:49:09
为什么用 create external table aaa 。。。。创建了一个表。
君哥2014-09-08 05:38:05
2014年IPO重点关注的公司:云存储的Box和DropBox,PaaS云的Pivotal,Hadoop大数据的Cloudera,NoSQL数据库的MongoDB。这是我知道,欢迎补充其他!
简单果冻2014-09-07 06:56:16
不是我啊
华仔2014-09-06 12:48:19
http://www.aboutyun.com/thread-8835-1-1.html
蜡笔小新2014-09-06 09:56:25
6. Sean解释了Mahout和Hadoop之间的关系
肖世康2014-09-05 01:27:00
[图片]
美女聊天2014-09-04 09:07:14
#WOT2014# EasyHadoop开源社区创始人之一赵修湘老师:Hive分布式数据仓库构建于hadoop的hdfs和mapred之上,用于管理和查询结构化/非结构化数据的数据仓库。Hive使用类SQL查询语法,最大限度的实现了和SQL标准的兼容,是关系型数据库绝佳的替代者。
爱已成往事2014-09-04 03:54:56
【Hadoop科普文——常见的45个问题解答】摘要:时至今日,Hadoop已成为最流行的离线数据处理平台,然而它的集群配置起来并不简单。如果你学习Hadoop不久,相信下面这45个问题会对你有所帮助。 在工作生活中,有些问题非常简单,但往往搜索半天也找不到所需的答... http://t.cn/RPP41Hz
 
  • Hadoop生态系统资料推荐