1 环境搭建准备
hadoop0.20.2
jkd1.6.0.38
ext-2.2
Oozie3.02
apache-tomcat-6.0.36
2 Oozie 介绍
Oozie是一种Java Web应用程序,它运行在Java servlet容器——即Tomcat——中,并使用数据库来存储以下内容:
- 工作流定义
- 当前运行的工作流实例,包括实例的状态和变量
Oozie工作流是放置在控制依赖DAG(有向无环图 Direct Acyclic Graph)中的一组动作(例如,Hadoop的Map/Reduce作业、Pig作业等),其中指定了动作执行的顺序。我们会使用hPDL(一种XML流程定义语言)来描述这个图。
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协调程序支持创建这样的数据应用管道。
3 环境搭建
1 下载上述准备的应用软件。
2 将上述准备好的材料统统放入 /home/software/ 进行解压(ext-2.2除外)
3 设置环境变量
export OOZIE_HOME=/home/software/oozie-3.0.2
export CATALINA_HOME=/home/software/apache-tomcat-6.0.36
export JRE_HOME=/usr/jdk1.7.0_10/jre。
4 安装OOZIE
输入命令
$OOZIE_HOME/bin/oozie-setup.sh -hadoop 0.20.2 /home/software/hadoop-0.20.2 -extjs /home/software/ext-2.2.zip
运行这条命令Oozie会将hadoop相关jar和oozie等拷贝到Oozie中.同时得到以下结果则代表你安装成功:
New Oozie WAR file with added 'Hadoop JARs, ExtJS library' at /home/software/ oozie-3.0.2/oozie- server/webapps/oozie.war
INFO: Oozie is ready to be started。
6)启动OOZIE
这里你要先确定你的Tomcat没有在运行.输入命令:
$OOZIE_HOME/bin/oozie-run.sh
之后会看到一大把的输出,同时Oozie会启动Tomcat.当你看到
2013-01-30 21:15:21 org.apache.catalina.startup.Catalina start
信息: Server startup in 17365 ms
则表示Oozie启动成功.
7)查看web控制台
输入命令:
$OOZIE_HOME/bin/oozie admin -oozie http://localhost:11000/oozie -status
当看到结果:
System mode: NORMAL
则表示已经成功,通过浏览器输入 http://localhost:11000/oozie就能看到Oozie的管理界面.
4 常见问题
一 访问oozie页面遇到404错误
解决方案:
1,把conf/oozie-default.xml里面的oozie.services属性值全部复制到conf/oozie-site.xml里面。
2,删去其中的org.apache.oozie.service.KerberosHadoopAccessorService值;
3,增加一个值:org.apache.oozie.service.HadoopAccessorService。
4, 重启oozie
二 webApp IE9 页面空白
解决方案:
1、 由于 OOZIE 使用的是extjs2.2版本,因此不支持IE9,硬伤问题。
2、 经测试,谷歌浏览器、与火狐浏览器正常运行。