大数据之Oozie学习之路一

本文详细介绍了Oozie工作流引擎的安装部署过程,包括环境变量配置、Hadoop配置修改、数据库设置及Web页面访问,适用于Hadoop任务调度与协调。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、Oozie简介

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

二、Oozie的功能模块介绍

2.1 模块

(1) Workflow

顺序执行流程节点,支持fork(分支多个节点),join(合并多个节点为一个)

(2) Coordinator

定时触发workflow

(3) Bundle Job

绑定多个Coordinator

2.2 常用节点

(1) 控制流节点(Control Flow Nodes)

控制流节点一般都是定义在工作流开始或者结束的位置,比如start,end,kill等。以及提供工作流的执行路径机制,如decision,fork,join等。

(2) 动作节点(Action Nodes)

负责执行具体动作的节点,比如:拷贝文件,执行某个Shell脚本等等。

三、Oozie安装部署

3.1 上传解压Oozie

将oozie-4.1.0-cdh5.7.6.tar.gz上传到我们的linux服务器上,上传到**/opt/soft目录中(该目录保存上传的tar包)。
解压Oozie(我解压的路径为
/opt/app**)
tar -zxvf oozie-4.1.0-cdh5.7.6.tar.gz /opt/app

3.2 配置环境变量

准备工作:同步集群时间

ntpdate ntp.sjtu.edu.cn

将解压后的oozie重命名

mv oozie-4.1.0-cdh5.7.6/ ooziemv

配置/etc/profile文件
vim /etc/profile(我这里用的VSCode修改配置文件,方便好用)

#oozie environment
export OOZIE_HOME=/opt/app/oozie
export PATH=$OOZIE_HOME/bin:$PATH

3.3 修改Hadoop配置(原来学习的基础上添加如下内容)

  • core-site.xml
<!-- Oozie Server的Hostname -->
<property>
	<name>hadoop.proxyuser.root.hosts</name>
	<value>*</value>
</property>

<!-- 允许被Oozie代理的用户组 -->
<property>
	<name>hadoop.proxyuser.root.groups</name>
 	<value>*</value>
</property>
  • mapred-site.xml
<!-- 配置 MapReduce JobHistory Server 地址 ,默认端口10020 -->
<property>
    <name>mapreduce.jobhistory.address</name>
    <value>cdh001:10020</value>
</property>

<!-- 配置 MapReduce JobHistory Server web ui 地址, 默认端口19888 -->
<property>
    <name>mapreduce.jobhistory.webapp.address</name>
    <value>cdh001:19888</value>
</property>
  • yarn-site.xml
<!-- 任务历史服务 -->
<property> 
	<name>yarn.log.server.url</name> 
	<value>http://cdh001:19888/jobhistory/logs/</value> 
</property> 

完成后,scp同步到其他节点

3.4 重启Hadoop集群

在namenode节点上:start-dfs.sh
在resourcemanager节点上:start-yarn.sh
在namenode节点上启动历史服务器:mr-jobhistory-daemon.sh start historyserver

3.5 在oozie根目录下解压hadooplibs

解压hadooplibs

 tar -zxvf oozie-hadooplibs-4.1.0-cdh5.7.6.tar.gz

执行完成后,我们需要的hadooplibs(该目录包含很多jar包)目录会自动解压到/opt/app/oozie/oozie-4.1.0-cdh5.7.6目录中,将其复制到oozie根目录

 cp -r  oozie-4.1.0-cdh5.7.6/* ./

3.6 在Oozie根目录下创建libext目录

 mkdir libext

3.7 拷贝一些依赖的Jar包

(1) 将hadooplibs里面的jar包,拷贝到libext目录下:

 cp oozie-4.1.0-cdh5.7.6/hadooplibs/hadooplib-2.6.0-cdh5.7.6.oozie-4.1.0-cdh5.7.6/* /opt/app/oozie/libext/

(2) 拷贝Mysql驱动包到libext目录下:

 cp /opt/app/hive/lib/mysql-connector-java-5.1.47-bin.jar /opt/app/oozie/libext/

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

  • ext是一个js框架,用于展示oozie前端页面.
cp /opt/soft/ext-2.2.zip  /opt/app/oozie/libext/

3.9 修改Oozie配置文件

  • oozie-site.xml
<configuration>
    <!-- 让Oozie引用Hadoop的配置文件 -->
    <property>
        <name>oozie.service.HadoopAccessorService.hadoop.configurations</name>
        <value>*=/opt/app/hadoop/etc/hadoop</value>
    </property>
    <property>
        <name>oozie.service.HadoopAccessorService.action.configurations</name>
        <value>*=/opt/app/hadoop/etc/hadoop</value>
    </property>
    <!-- 开启oozie的自动建表 -->
    <property>
        <name>oozie.service.JPAService.create.db.schema</name>
        <value>true</value>
    </property>
    <!-- JDBC的驱动 -->
    <property>
        <name>oozie.service.JPAService.jdbc.driver</name>
        <value>com.mysql.jdbc.Driver</value>
    </property>
    <!--oozie所需的数据库地址 -->
    <property>
        <name>oozie.service.JPAService.jdbc.url</name>
        <value>jdbc:mysql://cdh002:3306/oozie?createDatabaseIfNotExist=true</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>
</configuration>

3.10 初始化Oozie

(1) 上传Oozie目录下的yarn.tar.gz文件到HDFS:

尖叫提示:yarn.tar.gz文件会自行解压

 oozie-setup.sh sharelib create -fs hdfs://cdh001:9000 -locallib oozie-sharelib-4.1.0-cdh5.7.6-yarn.tar.gz

报错:
在这里插入图片描述
解决办法:
在msql服务器上给oozie所在节点授权:

grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
授予允许其他任何机器(%)使用root用户使用123456这个密码登录到mysql,授予所有数据库的所有表的权限
grant all privileges on *.* to 'root'@'cdh001' identified by '123456' with grant option;
flush privileges; 刷新权限

然后重启hdfs、yarn和jobhstoryserver
在这里插入图片描述
问题解决
去网页cdh001:50070检查对应目录有没有文件生成:
在这里插入图片描述

(2) 创建oozie.sql文件

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

在这里插入图片描述
执行成功后,mysql数据库中会生成一个oozie数据库。

(3) 打包项目,生成war包

yum -y install unzip
yum -y install zip 
  • 解压ext-zip
unzip libext/ext-2.2.zip
  • 打包
oozie-setup.sh prepare-war

3.11 启动/关闭oozie

1. 启动前台/后台
oozied.sh run/start
2. 关闭
oozied.sh stop

3.12 访问Oozie的Web页面

http://cdh001:11000/oozie/
在这里插入图片描述
看到这个页面,恭喜Oozie配置成功!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值