一、Oozie简介
Oozie英文翻译为:驯象人。一个基于工作流引擎的开源框架,由Cloudera公司贡献给Apache,提供对Hadoop Mapreduce、Pig Jobs的任务调度与协调。Oozie需要部署到Java Servlet容器中运行。主要用于定时调度任务,多任务可以按照执行的逻辑顺序调度。
二、Oozie的功能模块介绍
2.1、模块
1) Workflow
顺序执行流程节点,支持fork(分支多个节点),join(合并多个节点为一个)
2) Coordinator
定时触发workflow
3) Bundle Job
绑定多个Coordinator
2.2、常用节点
1) 控制流节点(Control Flow Nodes)
控制流节点一般都是定义在工作流开始或者结束的位置,比如start,end,kill等。以及提供工作流的执行路径机制,如decision,fork,join等。
2) 动作节点(Action Nodes)
负责执行具体动作的节点,比如:拷贝文件,执行某个Shell脚本等等。
三、Oozie的部署
3.1、部署
3.1.1、解压Oozie
$ tar -zxf ~/softwares/installations/cdh/oozie-4.0.0-cdh5.3.6.tar.gz -C ./ |
3.1.2、修改Hadoop配置(原来学习的基础上添加如下内容)
core-site.xml
尖叫提示:hadoop.proxyuser.admin.hosts类似属性中的admin用户替换成你的hadoop用户。
mapred-site.xml
yarn-site.xml
<!-- 任务历史服务 --> <property> <name>yarn.log.server.url</name> <value>http://linux01:19888/jobhistory/logs/</value> </property> |
完成后:记得scp同步到其他机器节点
3.1.3、重启Hadoop集群
$ sh ~/start-cluster.sh |
尖叫提示:需要开启JobHistoryServer, 最好执行一个MR任务进行测试。
3.1.4、在oozie根目录下解压hadooplibs
$ tar -zxf oozie-hadooplibs-4.0.0-cdh5.3.6.tar.gz -C ../ |
完成后Oozie目录下会出现hadooplibs目录。
3.1.5、在Oozie根目录下创建libext目录
$ mkdir libext/ |
3.1.6、拷贝一些依赖的Jar包
1) 将hadooplibs里面的jar包,拷贝到libext目录下:
$ cp -ra hadooplibs/hadooplib-2.5.0-cdh5.3.6.oozie-4.0.0-cdh5.3.6/* libext/ |
2) 拷贝Mysql驱动包到libext目录下:
$ cp -a ~/softwares/installations/mysql-connector-java-5.1.27/mysql-connector-java-5.1.27-bin.jar libext/ |
3.1.7、将ext-2.2.zip拷贝到libext/目录下
ext是一个js框架,用于展示oozie前端页面:
$ cp -a ~/softwares/installations/cdh/ext-2.2.zip libext/ |
3.1.8、修改Oozie配置文件
oozie-site.xml
3.1.9、在Mysql中创建Oozie的数据库
进入Mysql并创建oozie数据库:
$ mysql -uroot -p123456 mysql> create database oozie; |
3.1.10、初始化Oozie
1) 上传Oozie目录下的yarn.tar.gz文件到HDFS:
尖叫提示:yarn.tar.gz文件会自行解压
$ bin/oozie-setup.sh sharelib create -fs hdfs://linux01:8020 -locallib oozie-sharelib-4.0.0-cdh5.3.6-yarn.tar.gz |
执行成功之后,去50070检查对应目录有没有文件生成。
2) 创建oozie.sql文件
$ bin/oozie-setup.sh db create -run -sqlfile oozie.sql |
3) 打包项目,生成war包
$ bin/oozie-setup.sh prepare-war |
3.1.11、启动Oozie服务(附关闭Oozie服务)
$ bin/oozied.sh start 如需正常关闭Oozie服务,请使用: $ bin/oozied.sh stop |
3.1.12、访问Oozie的Web页面
http://linux01:11000/oozie |