oozie有三大功能:工作流引擎、coordinator、bundle(把多个coordinator绑定到一起),工作流引擎工作流引擎中定义了流程的控制节点和动作节点,其中控制流节点定义了流程的开始和结束,流程的执行路径,如decision、fork、join等;动作节点则包括了Hadoop map-reduce、hadoop文件系统、Pig、HTTP、和Oozie的子流程;
coordinator是oozie的工作流协调器,通过指定周期和频率,可以控制多个job按顺序定时执行,这样我们就不用通过crontab来运行shell脚本。
当coordinator有多个,并且之间有依赖关系时,可以用bundle将coordinator绑定到一起。
Oozie安装配置
使用Oozie的版本为4.0.0,安装之前需要装好以下软件:
Unix (tested in Linux and Mac OS X)
Java 1.6+
Apache Hadoop (tested with 1.0.0 & 0.23.1)
ExtJS library (optional, to enable Oozie webconsole),版本是2.2
(1)解压Oozie到安装目录下;
(2)在hadoop配置文件core-site.xml中需要配置oozie用户和组的权限,修改为本地主机名称。
<property>
<name>hadoop.proxyuser.zpl.hosts</name>
<value>zpl-hadoop</value>
</property>
<property>
<name>hadoop.proxyuser.zpl.groups</name>
<value>zpl</value>
</property>
3,在oozie的安装目录下有oozie-hadooplibs-4.0.0-cdh5.3.6.tar.gz包,将其解压到和oozie解压包相同的路径下,生成hadooplib目录,里面包含了oozie所需要的hadoop相关jar包
4,在oozie目录下创建libext目录,将之前解压获得的hadooplib下的所有jar包拷贝到libext目录下,同时将ext2.2.zip也拷贝到libext下;
5,在hdfs上创建share目录,路径为/user/zpl/share,将hadooplib下的share上传到hdfs上:
bin/hdfs dfs -copyFromLocal /home/zpl/CDH5.3.6/oozie-4.0.0-cdh5.3.6/share /user/zpl
6,因为oozie作为web程序运行在tomcat服务器上,所以需要打成war包:
$ bin/oozie-setup.sh prepare-war
7,使用ooziedb.sh命令行创建oozie数据库
$ bin/ooziedb.sh create -sqlfile oozie.sql -run
8,启动oozie服务:
$ bin/oozied.sh run
9,在浏览器中输入访问地址:zpl-hadoop:11000/oozie,看到oozie的web ui 页面。