Oozie工作流调度工具的部署

在这里插入图片描述

一、Oozie简介

Oozie英文翻译为:驯象人。一个基于工作流引擎的开源框架,由Cloudera公司贡献给Apache,提供对Hadoop Mapreduce、Pig Jobs的任务调度与协调。Oozie需要部署到Java Servlet容器中运行。主要用于定时调度任务,多任务可以按照执行的逻辑顺序调度。是个web项目,需要部署到web容器。

二、Oozie的功能模块介绍

模块

Workflow
顺序执行流程节点,支持fork(分支多个节点),join(合并多个节点为一个)
2) Coordinator(类似于闹钟)
定时触发workflow
3) Bundle Job
绑定多个Coordinator
在这里插入图片描述

常用节点

  1. 控制流节点(Control Flow Nodes)
    控制流节点一般都是定义在工作流开始或者结束的位置,比如start,end,kill等。以及提供工作流的执行路径机制,如decision,fork,join等。
  2. 动作节点(Action Nodes)
    负责执行具体动作的节点,比如:拷贝文件,执行某个Shell脚本等等。

三、Oozie的部署

3.1.1、解压Oozie

[root@hadoop003 software]# tar -zxvf oozie-4.0.0-cdh5.3.6.tar.gz -C /opt/module/
重命名目录:
[root@hadoop003 module]# mv oozie-4.0.0-cdh5.3.6/ oozie
新增oozie用户,使用oozie用户启动oozie服务
[root@hadoop003 module]# useradd oozie
[root@hadoop003 module]# passwd oozie 密码设成hadoop
[root@hadoop003 module]# chown -R oozie:oozie oozie/

3.1.2、修改Hadoop配置

core-site.xml

<!-- 允许被Oozie代理的主机地址 -->
<property>
	<name>hadoop.proxyuser.oozie.hosts</name>
	<value>*</value>
</property>

<!-- 允许被Oozie代理的用户组 -->
<property>
	<name>hadoop.proxyuser.oozie.groups</name>
 	<value>*</value>
</property>

代理
在这里插入图片描述

mapred-site.xml

<!-- 配置 MapReduce JobHistory Server 地址 ,默认端口10020 -->
<property>
    <name>mapreduce.jobhistory.address</name>
    <value>hadoop005:10020</value>
</property>

<!-- 配置 MapReduce JobHistory Server web ui 地址, 默认端口19888 -->
<property>
    <name>mapreduce.jobhistory.webapp.address</name>
    <value>hadoop005:19888</value>
</property>

yarn-site.xml

<!-- 任务历史服务 -->
<property> 
	<name>yarn.log.server.url</name> 
	<value>http://hadoop005:19888/jobhistory/logs/</value> 
</property>
<!-- 日志聚集功能使能 -->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<!-- 日志保留时间设置7-->
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>

完成后:记得scp同步到其他机器节点

[root@hadoop003 hadoop-2.7.2]# scp etc/hadoop/core-site.xml hadoop004:/opt/module/hadoop-2.7.2/etc/hadoop/
[root@hadoop003 hadoop-2.7.2]# scp etc/hadoop/core-site.xml hadoop005:/opt/module/hadoop-2.7.2/etc/hadoop/
[root@hadoop003 hadoop-2.7.2]# scp etc/hadoop/mapred-site.xml hadoop004:/opt/module/hadoop-2.7.2/etc/hadoop/
[root@hadoop003 hadoop-2.7.2]# scp etc/hadoop/mapred-site.xml hadoop005:/opt/module/hadoop-2.7.2/etc/hadoop/
[root@hadoop003 hadoop-2.7.2]# scp etc/hadoop/yarn-site.xml hadoop004:/opt/module/hadoop-2.7.2/etc/hadoop/
[root@hadoop003 hadoop-2.7.2]# scp etc/hadoop/yarn-site.xml hadoop005:/opt/module/hadoop-2.7.2/etc/hadoop/

3.1.3、重启Hadoop集群

[root@hadoop003 hadoop-2.7.2]# sbin/start-dfs.sh
[root@hadoop004 hadoop-2.7.2]# sbin/start-yarn.sh	
[root@hadoop005 hadoop-2.7.2]# sbin/mr-jobhistory-daemon.sh start historyserver

尖叫提示:需要开启JobHistoryServer, 最好执行一个MR任务进行测试是否开启。

3.1.4、在oozie根目录下解压hadooplibs

关于oozie的使用oozie操作
[oozie@hadoop003 oozie]# tar -zxvf oozie-hadooplibs-4.0.0-cdh5.3.6.tar.gz
[oozie@hadoop003 oozie]# cp -r oozie-4.0.0-cdh5.3.6/hadooplibs/ ./
[oozie@hadoop003 oozie]# rm -rf oozie-4.0.0-cdh5.3.6/
完成后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目录下:
    [oozie@hadoop003 oozie]# cp /opt/module/hive/lib/mysql-connector-java-5.1.27-bin.jar ./libext

3.1.7、将ext-2.2.zip拷贝到libext/目录下

先将ext-2.2.zip上传到/opt/software目录
ext是一个js框架,用于展示oozie前端页面:
[oozie@hadoop003 oozie]# cp /mnt/hgfs/vmshare/ext-2.2.zip libext/

3.1.8、修改Oozie配置文件

oozie-site.xml

属性:oozie.service.JPAService.jdbc.driver
属性值:com.mysql.jdbc.Driver
解释:JDBC的驱动

属性:oozie.service.JPAService.jdbc.url
属性值:jdbc:mysql://hadoop003:3306/oozie
解释:oozie所需的数据库地址

属性:oozie.service.JPAService.jdbc.username
属性值:root
解释:数据库用户名

属性:oozie.service.JPAService.jdbc.password
属性值:000000
解释:数据库密码

属性:oozie.service.HadoopAccessorService.hadoop.configurations
属性值:*=/opt/module/hadoop-2.7.2/etc/hadoop
解释:让Oozie引用Hadoop的配置文件 

3.1.9、在Mysql中创建Oozie的数据库

进入Mysql并创建oozie数据库:
$ mysql -uroot –p000000
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://hadoop003:9000 -locallib oozie-sharelib-4.0.0-cdh5.3.6-yarn.tar.gz
    注意此过程可能会报权限错误,原因,目录权限问题
    [root@hadoop003 ~]# hadoop fs -chmod -R o+w /user
    执行成功之后,去hdfs检查对应目录有没有文件生成。
  2. 创建oozie.sql文件
    $ bin/oozie-setup.sh db create -run -sqlfile oozie.sql
  3. 打包项目,生成war包
    $ bin/oozie-setup.sh prepare-war

INFO: Adding extension: /opt/module/oozie/libext/stax-api-1.0-2.jar
INFO: Adding extension: /opt/module/oozie/libext/xmlenc-0.52.jar
INFO: Adding extension: /opt/module/oozie/libext/xz-1.0.jar
INFO: Adding extension: /opt/module/oozie/libext/zookeeper-3.4.5-cdh5.3.6.jar
New Oozie WAR file with added ‘ExtJS library, JARs’ at /opt/module/oozie/oozie-server/webapps/oozie.war
INFO: Oozie is ready to be started

3.1.11、启动Oozie服务(附关闭Oozie服务)

$ bin/oozied.sh start
如需正常关闭Oozie服务,请使用:
$ bin/oozied.sh stop

3.1.12、访问Oozie的Web页面

可能需要稍等一会儿
http://hadoop003:11000/oozie

Oozied的使用

编写shell脚本,job.properties和workflow.xml文件

如果bin/oozied.sh stop无法关闭,则可以使用kill -9 [pid],之后oozie-server/temp/xxx.pid文件一定要删除。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值