Oozie英文翻译 驯象人 Oozie简介 一个基于工作流引擎的开源框架,由Cloudera公司贡献给Apache,提供对Hadoop Mapreduce、Pig Jobs的任务调度与协调。 Oozie需要部署到Java Servlet容器中运行。 Oozie在集群中扮演的角色 定时调度任务,多任务可以按照执行的逻辑顺序调度。 Oozie的功能模块 Workflow 顺序执行流程节点,支持fork(分支多个节点),join(合并多个节点为一个) Coordinator 定时触发workflow Bundle Job 绑定多个Coordinator Oozie的节点 控制流节点(Control Flow Nodes) 控制流节点一般都是定义在工作流开始或者结束的位置,比如start,end,kill等。以及提供工作流的执行路径机制, 如decision,fork,join等。 动作节点(Action Nodes) 就是执行具体任务动作的节点。
安装包
链接:https://pan.baidu.com/s/1hOD-qjgbiL2fLmxdZWo0RQ 提取码:u7gu
解压
修改hadoop的配置文件,因为oozie是可以调度mapreduce程序的,不配置代理的话是没办法访问的,把用户名和组改为自己的.
<!-- Oozie Server的Hostname -->
<property>
<name>hadoop.proxyuser.kxj.hosts</name>
<value>*</value>
</property>
<!-- 允许被Oozie代理的用户组 -->
<property>
<name>hadoop.proxyuser.kxj.groups</name>
<value>*</value>
</property>
配置JobHistoryServer服务(必须),因为它得知道这个任务是成功了还是失败了
<!-- 配置 MapReduce JobHistory Server 地址 ,默认端口10020 -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>hadoop-senior01.buba.com:10020</value>
</property>
<!-- 配置 MapReduce JobHistory Server web ui 地址, 默认端口19888 -->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>hadoop-senior01.buba.com:19888</value>
</property>
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<!--历史记录存留24小时-->
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>86400</value>
</property>
<!-- 任务历史服务 -->
<property>
<name>yarn.log.server.url</name>
<value>http://hadoop-senior01.buba.com:19888/jobhistory/logs/</value>
</property>
然后把配置文件复制到其它hadoop节点
启动集群测试JobHistoryServer,点击history能跳转过来就说明可以了.
随便跑个mapreduce程序
进入到oozie目录下解压这个文件,一定要解压到oozie的根目录下.
tar -zxvf oozie-hadooplibs-4.0.0-cdh5.3.6.tar.gz -C /opt/modules/
然后在oozie目录下就多了个hadiiolibs目录
在Oozie目录下创建libext目录 $ mkdir libext/
复制这个下面的所有jar包到刚新创的目录下
拷贝Mysql驱动包到libext目录下
将ext-2.2.zip拷贝到libext/目录下 这个js框架在百度网盘中,跟oozie在一块,是用来给oozie提供一个图形化界面的.
修改oozie配置文件
<property>
<name>oozie.service.JPAService.jdbc.driver</name>
<value>com.mysql.jdbc.Driver</value>
<description>
JDBC driver class.
</description>
</property>
<property>
<name>oozie.service.JPAService.jdbc.url</name>
<value>jdbc:mysql://192.168.1.20:3306/oozie</value>
<description>
JDBC URL.
</description>
</property>
<property>
<name>oozie.service.JPAService.jdbc.username</name>
<value>root</value>
<description>
DB user name.
</description>
</property>
<property>
<name>oozie.service.JPAService.jdbc.password</name>
<value>123456</value>
<description>
DB user password.
IMPORTANT: if password is emtpy leave a 1 space string, the service trims the value,
if empty Configuration assumes it is NULL.
</description>
</property>
修改成hadoop集群配置文件的绝对路径
在Mysql中创建Oozie的数据库
初始化Oozie的配置 上传Oozie目录下的yarn.tar.gz文件到HDFS
bin/oozie-setup.sh sharelib create -fs hdfs://hadoop-senior01.buba.com:8020 -locallib oozie-sharelib-4.0.0-cdh5.3.6-yarn.tar.gz
它就自动解压到这个目录下了
创建oozie.sql文件 $ bin/oozie-setup.sh db create -run -sqlfile oozie.sql
打包项目,生成war包 $ bin/oozie-setup.sh prepare-war
修改oozie的时区
在oozie.site.xml里添加时区
<property>
<name>oozie.processing.timezone</name>
<value>GMT+0800</value>
</property>
启动Oozie服务 $ bin/oozied.sh start (关闭Oozie服务:$ bin/oozied.sh stop)
能访问到这个就说明配置好了
没出来的看日志信息是报的什么错再进行相对应的解决.
如果没配置好就启动了记得把这里的pid文件删除掉,和把hdfs上生成的文件删除干净再重新配置.