oozie的介绍与安装

介绍

  • Oozie 是一个用来管理 Hadoop 生态圈 job 的工作流调度系统。(一种xml定制的流程控制语言);。

  • Oozie 的目的是按照 DAG(有向无环图)调度一系列的 Map/Reduce 或者 Hive等任务。

  • 适用场景:
    需要按顺序进行一系列任务;
    需要并行处理的任务;
    需要定时、周期触发的任务;
    可视化作业流运行过程;
    运行结果或异常的通报

架构:
在这里插入图片描述
Oozie Client:提供命令行、java api、rest 等方式,对 Oozie 的工作流
流程的提交、启动、运行等操作;

Oozie WebApp:即 Oozie Server,本质是一个 java 应用。可以使用内置的
web 容器,也可以使用外置的 web 容器;

Hadoop Cluster:底层执行 Oozie 编排流程的各个 hadoop 生态圈组件;

Oozie 基本原理:

Oozie 对工作流的编排,是基于 workflow.xml 文件来完成的。用户预先将工
作流执行规则定制于 workflow.xml 文件中,并在 job.properties 配置相关的参数,然后由 Oozie Server 向 MR 提交 job 来启动工作流。

流程节点:
工作流由两种类型的节点组成,分别是:

Control Flow Nodes:控制工作流执行路径,包括 start,end,kill,decision,fork,join。
Action Nodes:决定每个操作执行的任务类型,包括 MapReduce、javahive、shell 等

Oozie 工作流类型:

  • WorkFlow:规则相对简单,不涉及定时、批处理的工作流。顺序执行流程节点。Workflow 有个大缺点:没有定时和条在这里插入图片描述
    件触发功能。

  • Coordinator:Coordinator 将多个工作流 Job 组织起来,称为 Coordinator Job,并指定触发时间和频率,还可以配置数据集、并发数等,类似于在工作流外部增加了一个协调器来管理这些工作流的工作流 Job 的运行。
    -在这里插入图片描述

  • Bundle:针对 coordinator 的批处理工作流。Bundle 将多个 Coordinator 管理起来,这样我们只需要一个 Bundle 提交即可。
    在这里插入图片描述

安装

1. 修改 hadoop 相关配置

配置 httpfs 服务
修改 hadoop 的配置文件 core-site.xml

<property>
 <name>hadoop.proxyuser.root.hosts</name>
 <value>*</value>
</property>
<property>
 <name>hadoop.proxyuser.root.groups</name>
 <value>*</value>
</property>

hadoop.proxyuser.root.hosts :允许通过 httpfs 方式访问 hdfs 的主机名、域名;
hadoop.proxyuser.root.groups 允许访问的客户端的用户组

配置 jobhistory 服务

<property>
 <name>mapreduce.jobhistory.address</name>
 <value>hadoop202:10020</value>
</property>
<property>
 <name>mapreduce.jobhistory.webapp.address</name>
 <value>hadoop202:19888</value>
</property>
2. 上传 oozie 的安装包并解压

oozie 的安装包上传到/export/softwares

tar -zxvf oozie-4.1.0-cdh5.14.0.tar.gz

解压 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. 添加相关依赖

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

mkdir -p libext

3.2 拷贝 hadoop 依赖包到 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.3 上传 mysql 的驱动包到 libext

3.4 添加 ext-2.2.zip 压缩包到 libext

4.修改oozie-site.xml
<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://hadoop202: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>000000</value>
 </property>
<property>
<name>oozie.processing.timezone</name>
<value>GMT+0800</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-3.1.3/etc/hadoop</value>
 </property>
5.初始化mysql的相关信息

上传 oozie 的解压后目录的下的 yarn.tar.gz 到 hdfs 目录

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

本质: 其实就是将这些 jar 包解压到了 hdfs 上面的路径下面去

到mysql中创建数据库: create database oozie;

初始化oozie数据库表:

bin/oozie-setup.sh db create -run -sqlfile oozie.sql

6.打包项目,生成war包

bin/oozie-setup.sh prepare-war
在这里插入图片描述
看到这个就说明已经可以启动oozie 了

7.配置oozie环境变量(可选)
export OOZIE_HOME=/opt/module/oozie-4.1.0-cdh5.14.0
export OOZIE_URL=http://hadoop202:11000/oozie
export PATH=$PATH:$OOZIE_HOME/bin
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值