您的位置:首页 > 其它

Oozie的简介及安装部署

2017-12-22 11:05 253 查看
Oozie是任务调度框架,简单的说Oozie是一个工作流引擎。只不过它是一个基于Hadoop的工作流引擎,在实际工作中,遇到对数据进行一连串的操作的时候很实用,不需要自己写一些处理代码了,只需要定义好各个action,然后把他们串在一个工作流里面就可以自动执行了,对于大数据的分析工作非常有用。

     





hPDL是一种很简洁的语言,只会使用少数流程控制和动作节点。控制节点会定义执行的流程,并包含工作流的起点和终点(start、end和fail节点)以及控制工作流执行路径的机制(decision、fork和join节点)。动作节点是一些机制,通过它们工作流会触发执行计算或者处理任务。Oozie为以下类型的动作提供支持: Hadoop map-reduce、Hadoop文件系统、Pig、Java和Oozie的子工作流(SSH动作已经从Oozie schema 0.2之后的版本中移除了)。

所有由动作节点触发的计算和处理任务都不在Oozie之中——它们是由Hadoop的Map/Reduce框架执行的。这种方法让Oozie可以支持现存的Hadoop用于负载平衡、灾难恢复的机制。这些任务主要是异步执行的(只有文件系统动作例外,它是同步处理的)。这意味着对于大多数工作流动作触发的计算或处理任务的类型来说,在工作流操作转换到工作流的下一个节点之前都需要等待,直到计算或处理任务结束了之后才能够继续。Oozie可以通过两种不同的方式来检测计算或处理任务是否完成,也就是回调和轮询。当Oozie启动了计算或处理任务的时候,它会为任务提供唯一的回调URL,然后任务会在完成的时候发送通知给特定的URL。在任务无法触发回调URL的情况下(可能是因为任何原因,比方说网络闪断),或者当任务的类型无法在完成时触发回调URL的时候,Oozie有一种机制,可以对计算或处理任务进行轮询,从而保证能够完成任务。

Oozie工作流可以参数化(在工作流定义中使用像${inputDir}之类的变量)。在提交工作流操作的时候,我们必须提供参数值。如果经过合适地参数化(比方说,使用不同的输出目录),那么多个同样的工作流操作可以并发。

一些工作流是根据需要触发的,但是大多数情况下,我们有必要基于一定的时间段和(或)数据可用性和(或)外部事件来运行它们。Oozie协调系统(Coordinator system)让用户可以基于这些参数来定义工作流执行计划。Oozie协调程序让我们可以以谓词的方式对工作流执行触发器进行建模,那可以指向数据、事件和(或)外部事件。工作流作业会在谓词得到满足的时候启动。

经常我们还需要连接定时运行、但时间间隔不同的工作流操作。多个随后运行的工作流的输出会成为下一个工作流的输入。把这些工作流连接在一起,会让系统把它作为数据应用的管道来引用。Oozie协调程序支持创建这样的数据应用管道。

Oozie有3个主要概念

workflow  工作流
coordinator 多个workflow可以组成一个coordinator,可以把前几个workflow的输出作为后一个workflow的输入,也可以定义workflow的触发条件,来做定时触发
bundle 是对一堆coordinator的抽象

oozie部署
1、解压 安装包
2、到Hadoop中修改core-site.xml
<property>
<name>hadoop.proxyuser.ds.hosts</name>
<value> bigdata-01.yushu.com</value>
 </property>
 <property>
<name>hadoop.proxyuser.ds.groups</name>
<value>*</value>
 </property>
                           
重启HDFS

3、解压Hadooplibs
$ tar -zxf oozie-hadooplibs-4.0.0-cdh5.3.6.tar.gz -C ./
4、在oozie主目录创建libext文件夹(不能其他名字)
mkdir libext
5、将oozie需要的Hadoopjar包拷贝到ext目录下
$ cp oozie-4.0.0-cdh5.3.6/hadooplibs/hadooplib-2.5.0-cdh5.3.6.oozie-4.0.0-cdh5.3.6/* libext/
6、将extJS拷贝到libext下
$ cp /opt/software/ext-2.2.zip libext/
7、

bin/oozie-setup.sh sharelib create -fs hdfs:// bigdata-01.yushu.com:8020 -locallib oozie-sharelib-4.0.0-cdh5.3.6-yarn.tar.gz
该命令会在用户主目录上传lib文件 /user/oozie/share/lib
8、
bin/oozie-setup.sh prepare-war
9、初始化DB
bin/ooziedb.sh create -sqlfile oozie.sql -run DB Connection
10、启动
$ bin/oozied.sh start
进程名:Bootstrap

记住这个路径 如果下次启动失败把该文件删除。

 /opt/cdh5/oozie-4.0.0-cdh5.3.6/oozie-server/temp/oozie.pid

外部界面,端口:11000

 bigdata-01.yushu.com:11000




内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: