Oozie是一个基于工作流引擎的开源框架,由Cloudera公司贡献给Apache,提供对Hadoop MapReduce、Pig Jobs的任务调度与协调。Oozie需要部署到Java Servlet容器中运行。主要用于定时调度任务,多任务可以按照执行的逻辑顺序调度。关注专栏《破茧成蝶——大数据篇》,查看更多相关的内容~
目录
一、Oozie的简介
1.1 简介
1.2 模块
1.3 Workflow常用节点
二、Oozie的安装部署
2.1 安装CDH版本的Hadoop
2.1.1 上传解压安装包
2.1.2 修改配置文件
2.1.3 分发
2.1.4 测试
2.2 安装Oozie
2.2.1 上传并解压Oozie安装包
2.2.2 解压oozie-hadooplibs-4.0.0-cdh5.3.6.tar.gz到Oozie的根目录
2.2.3 在Oozie目录下创建libext目录
2.2.4 添加jar包
2.2.5 拷贝ext-2.2.zip
2.2.6 修改Oozie配置文件
2.2.7 在MySQL中创建oozie数据库
2.2.8 初始化Oozie
2.2.9 启动/关闭Oozie
一个基于工作流引擎的开源框架,是由Cloudera公司贡献给Apache的,它能够提供对HadoopMapReduce和Pig Jobs的任务调度与协调。Oozie需要部署到Java Servlet容器中运行。Oozie工作流定义,同JBoss jBPM提供的jPDL一样,也提供了类似的流程定义语言hPDL,通过XML文件格式来实现流程的定义。对于工作流系统,一般都会有很多不同功能的节点,比如分支、并发、汇合等等。Oozie定义了控制流节点(Control Flow Nodes)和动作节点(Action Nodes),其中控制流节点定义了流程的开始和结束,以及控制流程的执行路径(Execution Path),如decision、fork、join等;而动作节点包括Hadoop map-reduce、Hadoop文件系统、Pig、SSH、HTTP、Email和Oozie子流程。
1、Workflow:顺序执行流程节点,支持fork(分支多个节点),join(合并多个节点为一个)。2、Coordinator:定时触发workflow。3、Bundle:绑定多个Coordinator。
1、控制流节点(Control Flow Nodes):控制流节点一般都是定义在工作流开始或者结束的位置,比如start、end、kill等。以及提供工作流的执行路径机制,如decision,fork,join等。2、动作节点(Action Nodes):负责执行具体动作的节点,比如:拷贝文件,执行某个Shell脚本等等。
首先还是上传安装包并解压到相关目录:
[root@master software]# tar -zxvf hadoop-2.5.0-cdh5.3.6.tar.gz -C ../modules/cdh/
修改/opt/modules/cdh/hadoop-2.5.0-cdh5.3.6/etc/hadoop目录下的相关配置文件:
1、修改slaves配置文件
master
slave01
slave02
2、修改yarn-env.sh配置文件
export JAVA_HOME=/opt/modules/jdk1.8.0_144
3、修改mapred-env.sh配置文件
export JAVA_HOME=/opt/modules/jdk1.8.0_144
4、修改hadoop-env.sh配置文件
export JAVA_HOME=/opt/modules/jdk1.8.0_144
5、修改core-site.xml配置文件
fs.defaultFS
hdfs://master:8020
hadoop.tmp.dir
/opt/modules/cdh/hadoop-2.5.0-cdh5.3.6/data/tmp
hadoop.proxyuser.root.hosts
*
hadoop.proxyuser.root.groups
*
6、修改hdfs-site.xml配置文件
dfs.replication
3
dfs.namenode.secondary.http-address
slave02:50090
7、修改mapred-site.xml配置文件
mapreduce.framework.name
yarn
mapreduce.jobhistory.address
slave01:10020
mapreduce.jobhistory.webapp.address
slave01:19888
8、修改yarn-site.xml配置文件
yarn.nodemanager.aux-services
mapreduce_shuffle
yarn.resourcemanager.hostname
slave01
yarn.log.server.url
http://master:19888/jobhistory/logs/
将配置好的目录分发到集群机器各节点:
1、格式化NameNode
bin/hdfs namenode -format
2、启动集群
1、master节点
sbin/start-dfs.sh
2、slave01节点
sbin/start-yarn.sh
sbin/mr-jobhistory-daemon.sh start historyserver
3、监控界面看一下启动是否正常
4、测试,新建一个文件测试wordcount,跑通说明集群没有问题。
[root@master software]# tar -zxvf oozie-4.0.0-cdh5.3.6.tar.gz -C ../modules/
[root@master oozie-4.0.0-cdh5.3.6]# tar -zxvf oozie-hadooplibs-4.0.0-cdh5.3.6.tar.gz -C ../
[root@master oozie-4.0.0-cdh5.3.6]# mkdir libext
[root@master oozie-4.0.0-cdh5.3.6]# cp -ra hadooplibs/hadooplib-2.5.0-cdh5.3.6.oozie-4.0.0-cdh5.3.6/* ./libext/
[root@master oozie-4.0.0-cdh5.3.6]# cp -a /opt/software/mysql-connector-java-5.1.47.jar ./libext/
[root@master libext]# cp /opt/software/ext-2.2.zip ./
ext是一个js框架,用于展示oozie前端页面。
修改Oozie的配置文件oozie-site.xml,如下:
oozie.service.JPAService.jdbc.driver
com.mysql.jdbc.Driver
JDBC driver class.
oozie.service.JPAService.jdbc.url
jdbc:mysql://master:3306/oozie
JDBC URL.
oozie.service.JPAService.jdbc.username
root
DB user name.
oozie.service.JPAService.jdbc.password
p@ssw0rd
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.
oozie.service.HadoopAccessorService.hadoop.configurations
*=/opt/modules/cdh/hadoop-2.5.0-cdh5.3.6/etc/hadoop
Comma separated AUTHORITY=HADOOP_CONF_DIR, where AUTHORITY is the HOST:PORT of
the Hadoop service (JobTracker, HDFS). The wildcard '*' configuration is
used when there is no exact match for an authority. The HADOOP_CONF_DIR contains
the relevant Hadoop *-site.xml files. If the path is relative is looked within
the Oozie configuration directory; though the path can be absolute (i.e. to point
to Hadoop client conf/ directories in the local filesystem.
create database oozie;
1、上传Oozie目录下的yarn.tar.gz文件到HDFS。
bin/oozie-setup.sh sharelib create -fs hdfs://master:8020 -locallib oozie-sharelib-4.0.0-cdh5.3.6-yarn.tar.gz
监控界面可以发现有目录生成:
2、创建oozie.sql文件
bin/ooziedb.sh create -sqlfile oozie.sql -run
3、打包项目,生成war包
bin/oozie-setup.sh prepare-war
bin/oozied.sh start/stop
以上就是本文的所有内容,比较简单。你们在此过程中遇到了什么问题,欢迎留言,让我看看你们都遇到了哪些问题~