作业流 oozie调度框架的配置与使用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了作业流 oozie调度框架的配置与使用相关的知识,希望对你有一定的参考价值。
- 一: 常见的调度框架
- 一: oozie 概述与功能
- 二: oozie 安装与配置
一: 常见的作用调度框架
1.1 linux 下面的计划任务
在工作量比较下的情况下 使用linux 下的crond 使用定制计划任务
* * * * * 后面接调度 job 的命令
分 时 日 月 周
hive -e " " 执行一个sql 命令
hive -f " " 执行一个sql 脚本
结合 crond 使用
1.2 常见的协作调度框架:
1.2.1 Azkaban 框架
参考资料
http://blog.csdn.net/jinshuaiwang/article/details/40426743
https://azkaban.github.io/
1.2.2 oozie 框架
官网:
http://oozie.apache.org/
1.2.3 Zeus 框架 (淘宝开源框架)
https://github.com/michael8335/zeus2
二:oozie 概述与功能
2.1 oozie 概述与功能
2.1.1 一个基于工作流引擎的开源框架,是由Cloudera公司贡献给Apache的,它能够提供对Hadoop MapReduce和Pig Jobs的任务调度与协调。Oozie需要部署到Java Servlet容器中运行。 
2.1.2 Oozie工作流定义,同JBoss jBPM提供的jPDL一样,也提供了类似的流程定义语言hPDL,通过XML文件格式来实现流程的定义。对于工作流系统,一般都会有很多不同功能的节点,比如分支、并发、汇合等等。
2.1.3 Oozie定义了控制流节点(Control Flow Nodes)和动作节点(Action Nodes),其中控制流节点定义了流程的开始和结束,以及控制流程的执行路径(Execution Path),如decision、fork、join等;而动作节点包括Hadoop map-reduce、Hadoop文件系统、Pig、SSH、HTTP、eMail和Oozie子流程。
2.2 oozie 简易架构
2.3 oozie 的三种引擎
Workflow:顺序执行流程节点
Coordinator:定时触发workflow
Bundle Job:绑定多个coordinator
2.3.1 workflow 架构
2.3.2 Oozie coordinator生命周期
2.3.3 Bundle Job
2.4 oozie server 组建:
三: oozie 的安装与配置:
3.1 安装oozie-4.0.0-cdh-5.3.6.tar.gz
tar -zxvf oozie-4.0.0-cdh-5.3.6.tar.gz
mv oozie-4.0.0.-cdh-5.3.5-bin yangyang/oozie
3.2 配置oozie 与hadoop 整合
编辑core-site.xml 增加:
<property>
<name>hadoop.proxyuser.hadoop.hosts</name>
<value>namenode01.hadoop.com</value>
</property>
<property>
<name>hadoop.proxyuser.hadoop.groups</name>
<value>*</value>
</property>
3.3 解压oozie 的lib 包
cd /home/hadoop/yangyang/oozie
tar -zxvf oozie-hadooplibs-4.0.0-cdh5.3.6.tar.gz
cd oozie-4.0.0-cdh5.3.6/
mv hadooplibs /home/hadoop/yangyang/oozie/
3.4 创建libext 文件与上传ext 文件
cd /home/hadoop/yangyang/oozie
mkdir libext
cd /home/hadoop/yangyang/oozie/hadooplibs/hadooplib-2.5.0-cdh5.3.6.oozie-4.0.0-cdh5.3.6
cp -p * /home/hadoop/yangyang/oozie/libext
cd /home/hadoop/yangyang/oozie/libext
rz ext-2.2.zip
3.5 安装mysql 数据库并生成mysql数据表
安装mysql 与拷贝驱动包
yum install mysql (之前已经安装)
cd /home/hadoop/mysql-connector-java-5.1.27
cp -p mysql-connector-java-5.1.27-bin.jar /home/hadoop/yangyang/oozie/lib/
cp -p mysql-connector-java-5.1.27-bin.jar /home/hadoop/yangyang/oozie/libext/
更改oozie 的配置文件oozie-site.xml 文件
cd /home/hadoop/yangyang/oozie/conf
与mysql 关联处理
<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://namenode01.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.service.HadoopAccessorService.hadoop.configurations</name>
<value>*=/home/hadoop/yangyang/hadoop/etc/hadoop</value>
</property>
在mysql上面创建oozie 数据库
mysql -uroot -p123456
create database oozie;
执行oozie 命令生成数据:
bin/oozie-setup.sh db create -run oozie.sql
在mysql查看数据表
3.6 用setup命令 生产war 包
bin/oozie-setup.sh prepare-war
3.7 把当前的目录包上传到hdfs 上面
修改oozie-site.xml
---
<property>
<name>oozie.service.WorkflowAppService.system.libpath</name>
<value>/user/oozie/share/lib</value>
</property>
bin/oozie-setup.sh sharelib create -fs hdfs://namenode01.hadoop.com:8020 -locallib oozie-sharelib-4.0.0-cdh5.3.6-yarn.tar.gz
3.8 启动oozie
bin/oozied.sh start
3.9 访问测试:
http://192.168.3.8:11000
在hdfs查看lib 包
以上是关于作业流 oozie调度框架的配置与使用的主要内容,如果未能解决你的问题,请参考以下文章