标题

  • 1.oozie的介绍
  • 2.oozie的架构
  • 3.oozie的安装



1.oozie的介绍

Oozie是运行在hadoop平台上的一种工作流调度引擎,它可以用来调度与管理hadoop任务,如,MapReduce、Pig等。那么,对于OozieWorkflow中的一个个的action(可以理解成一个个MapReduce任务)Oozie是根据什么来对action的执行时间与执行顺序进行管理调度的呢?答案就是我们在数据结构中常见的有向无环图(DAGDirect Acyclic Graph)的模式来进行管理调度的,我们可以利用HPDL语言(一种xml语言)来定义整个workflow,实现工作流的调度oozie的架构以及执行流程

2.oozie的架构

hadoop整合mogodb hadoop oozie_hadoop

oozie的执行流程

hadoop整合mogodb hadoop oozie_hadoop整合mogodb_02

oozie的组件介绍:
workFlow: 工作流,定义我们的工作流的任务的执行,主要由一个个的action,在xml中进行配置即可
Coordinator : 协作器,说白了就是oozie当中的定时任务调度的模块
Bundle : 多个Coordinator 的抽象,可以通过bundle将多个Coordinator 进行组装集合起来,形成一个bundle

3.oozie的安装

3.1 修改core-site.xml
添加hadoop的代理用户

cd /export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoop
vim  core-site.xml
<property>
                <name>hadoop.proxyuser.root.hosts</name>
                <value>*</value>
        </property>
        <property>
                <name>hadoop.proxyuser.root.groups</name>
                <value>*</value>
        </property>

注意: hadoop的历史任务的服务必须启动,即19888端口可以查看,具体如何配置19888请查看hadoop课程的环境搭建

重启hdfs与yarn集群

cd /export/servers/hadoop-2.6.0-cdh5.14.0
sbin/stop-dfs.sh
sbin/start-dfs.sh
sbin/stop-yarn.sh
sbin/start-yarn.sh

3.2 上传oozie的安装包并解压

cd /export/softwares/
tar -zxvf oozie-4.1.0-cdh5.14.0.tar.gz -C ../servers/

3.3 解压hadooplibs到与oozie平行的目录

cd /export/servers/oozie-4.1.0-cdh5.14.0
tar -zxvf oozie-hadooplibs-4.1.0-cdh5.14.0.tar.gz -C ../

3.4 创建libext目录
在oozie的安装路径下创建libext目录

cd /export/servers/oozie-4.1.0-cdh5.14.0
mkdir -p libext

3.5 拷贝依赖包到libext

cd /export/servers/oozie-4.1.0-cdh5.14.0
cp -ra hadooplibs/hadooplib-2.6.0-cdh5.14.0.oozie-4.1.0-cdh5.14.0/* libext/

3.6 添加ext-2.2.zip压缩包
拷贝ext-2.2.zip这个包到libext目录当中去
将我们准备好的软件ext-2.2.zip拷贝到我们的libext目录当中去

cd /export/softwares
cp ext-2.2.zip /export/servers/oozie-4.1.0-cdh5.14.0/libext/

3.7 修改oozie-site.xml
如果没有这些属性,直接添加进去即可

cd /export/servers/oozie-4.1.0-cdh5.14.0/conf
vim oozie-site.xml

oozie默认使用的是UTC的时区,我们需要在我们oozie-site.xml当中记得要配置我们的时区为GMT+0800时区

<property>
        <name>oozie.service.JPAService.jdbc.driver</name>
        <value>com.mysql.jdbc.Driver</value>
    </property>
	
	<property>
        <name>oozie.service.JPAService.jdbc.url</name>
        <value>jdbc:mysql://node03.hadoop.com:3306/oozie</value>
    </property>
	
	
	<property>
		<name>oozie.service.JPAService.jdbc.username</name>
		<value>root</value>
	</property>

    <property>
        <name>oozie.service.JPAService.jdbc.password</name>
        <value>123456</value>
    </property>

	<property>
			<name>oozie.processing.timezone</name>
			<value>GMT+0800</value>
	</property>


	<property>
		<name>oozie.service.ProxyUserService.proxyuser.hue.hosts</name>
        <value>*</value>
    </property>
	
	
    <property>   <name>oozie.service.ProxyUserService.proxyuser.hue.groups</name>
        <value>*</value>
    </property>
	
	<property>
        <name>oozie.service.coord.check.maximum.frequency</name>
		<value>false</value>
    </property>     


	<property>
	<name>oozie.service.HadoopAccessorService.hadoop.configurations</name>
        <value>*=/export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoop</value>
</property>

3.8 创建mysql数据库

mysql -uroot -p
create database oozie;

3.9 上传oozie依赖的jar包到hdfs上面去
上传oozie的解压后目录的yarn.tar.gz到hdfs目录去,实际上就是将这些jar包解压到了hdfs上面的路径下面去了

bin/oozie-setup.sh  sharelib create -fs hdfs://node01:8020 -locallib oozie-sharelib-4.1.0-cdh5.14.0-yarn.tar.gz

3.10 创建oozie的数据库表

cd /export/servers/oozie-4.1.0-cdh5.14.0
bin/oozie-setup.sh  db create -run -sqlfile oozie.sql

3.11 打包项目,生成war包

cd /export/servers/oozie-4.1.0-cdh5.14.0
bin/oozie-setup.sh  prepare-war

3.12 配置oozie的环境变量

vim /etc/profile
export OOZIE_HOME=/export/servers/oozie-4.1.0-cdh5.14.0
export OOZIE_URL=http://node03.hadoop.com:11000/oozie
export PATH=:$OOZIE_HOME/bin:$PATH
source /etc/profile

3.13 启动与关闭oozie服务
启动:

cd /export/servers/oozie-4.1.0-cdh5.14.0
bin/oozied.sh start

关闭:

bin/oozied.sh stop

3.14 浏览器页面访问oozie
http://node03:11000/oozie/