一、Oozie 简介
Oozie 英文翻译为:驯象人。一个基于工作流引擎的开源框架,由 Cloudera 公司贡献给Apache,提供对 Hadoop Mapreduce、Pig Jobs 的任务调度与协调。Oozie 需要部署到 Java Servlet 容器中运行。主要用于定时调度任务,多任务可以按照执行的逻辑顺序调度。
二、Oozie 的功能模块介绍
2.1、模块
- Workflow
顺序执行流程节点,支持 fork(分支多个节点),join(合并多个节点为一个) - Coordinator
定时触发 workflow - Bundle Job
绑定多个 Coordinator
2.2、常用节点 - 控制流节点(Control Flow Nodes)
控制流节点一般都是定义在工作流开始或者结束的位置,比如 start,end,kill 等。以及提供工作流的执行路径机制,如 decision,fork,join 等。 - 动作节点(Action Nodes)
负责执行具体动作的节点,比如:拷贝文件,执行某个 Shell 脚本等等。
三、Oozie 的部署
3.1 下载安装包并解压到指定目录
3.2 在原来学习的基础上修改 Hadoop 配置信息如下:
core-site.xml
<!-- Oozie Server 的 Hostname -->
<property>
<name>hadoop.proxyuser.admin.hosts</name>
<value>*</value>
</property>
<!-- 允许被 Oozie 代理的用户组 -->
<property>
<name>hadoop.proxyuser.admin.groups</name>
<value>*</value>
</property>
mapred-site.xml
<!-- 配置 MapReduce JobHistory Server 地址 ,默认端口 10020 -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>linux01:10020</value>
</property>
<!-- 配置 MapReduce JobHistory Server web ui 地址, 默认端口 19888 -->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>linux01:19888</value>
</property>
yarn-site.xml
<!-- 任务历史服务 -->
<property>
<name>yarn.log.server.url</name>
<value>http://linux01:19888/jobhistory/logs/</value>
</property>
3.3 将配置文件同步到集群的其它节点
3.4 重启Hadoop集群
3.5 在 oozie 根目录下解压 hadooplibs
3.6 在 Oozie 根目录下创建 libext 目录
3.7 拷贝一些依赖的 jar 包
1.将 hadooplibs 里面的 jar 包,拷贝到 libext 目录下
2.拷贝 Mysql 驱动包到 libext 目录下
3.8 将 ext-2.2.zip 拷贝到 libext/目录下
3.9 修改Oozie配置文件
oozie-site.xml
属性:oozie.service.JPAService.jdbc.driver
属性值:com.mysql.jdbc.Driver
解释:JDBC 的驱动
属性:oozie.service.JPAService.jdbc.url
属性值:jdbc:mysql://linux01:3306/oozie
解释:oozie 所需的数据库地址
属性:oozie.service.JPAService.jdbc.username
属性值:root
解释:数据库用户名
属性:oozie.service.JPAService.jdbc.password
属性值:123456
解释:数据库密码
属性:oozie.service.HadoopAccessorService.hadoop.configurations
属性值:*=/home/admin/modules/cdh/hadoop-2.5.0-cdh5.3.6/etc/hadoop
解释:让Oozie 引用 Hadoop 的配置文件
3.10 在 Mysql 中创建 Oozie 的数据库
1.上传 Oozie 目录下的 yarn.tar.gz 文件到 HDFS
2. 创建 oozie.sql 文件
3. 打包项目,生成 war 包
3.11 启动、关闭 Oozie 服务
$ bin/oozied.sh start
$ bin/oozied.sh stop
3.12 访问 Oozie 的 Web 页面
http://主机IP:11000/oozie
完!