[关闭]
@zhangyy 2018-04-12T13:34:24.000000Z 字数 3098 阅读 173

大数据协作框架oozie

协作框架


  • 一: 常见的调度框架
  • 一: oozie 概述与功能
  • 二: oozie 安装与配置

一: 常见的作用调度框架

1.1 linux 下面的计划任务

在工作量比较下的情况下 使用linux 下的crond 使用定制计划任务

  1. * * * * * 后面接调度 job 的命令
  2. hive -e " " 执行一个sql 命令
  3. hive -f " " 执行一个sql 脚本
  4. 结合 crond 使用

1.2 常见的协作调度框架:

1.2.1 Azkaban 框架

  1. 参考资料
  2. http://blog.csdn.net/jinshuaiwang/article/details/40426743
  3. https://azkaban.github.io/

1.2.2 oozie 框架

  1. 官网:
  2. http://oozie.apache.org/

1.2.3 Zeus 框架 (淘宝开源框架)

  1. https://github.com/michael8335/zeus2

二:oozie 概述与功能

2.1 oozie 概述与功能

  1. 2.1.1 一个基于工作流引擎的开源框架,是由Cloudera公司贡献给Apache的,它能够提供对Hadoop MapReducePig Jobs的任务调度与协调。Oozie需要部署到Java Servlet容器中运行。 
  2. 2.1.2 Oozie工作流定义,同JBoss jBPM提供的jPDL一样,也提供了类似的流程定义语言hPDL,通过XML文件格式来实现流程的定义。对于工作流系统,一般都会有很多不同功能的节点,比如分支、并发、汇合等等。
  3. 2.1.3 Oozie定义了控制流节点(Control Flow Nodes)和动作节点(Action Nodes),其中控制流节点定义了流程的开始和结束,以及控制流程的执行路径(Execution Path),如decisionforkjoin等;而动作节点包括Hadoop map-reduceHadoop文件系统、PigSSHHTTPeMailOozie子流程。

2.2 oozie 简易架构

image_1akhm3bv8muv162h1u41ve318189.png-58kB

2.3 oozie 的三种引擎

  1. Workflow:顺序执行流程节点
  2. Coordinator:定时触发workflow
  3. Bundle Job:绑定多个coordinator

2.3.1 workflow 架构

image_1akhmaidd6a3d6m11ak15oe9p0m.png-34.8kB

2.3.2 Oozie coordinator生命周期

image_1akhmbdfe32m1m6f363juu27713.png-33.6kB

2.3.3 Bundle Job

image_1akhmcmbn12hu12g412tv1cjo19g11g.png-50.6kB

2.4 oozie server 组建:

image_1akhmf44nvfh140gqc68pmhs1t.png-51.5kB

image_1akhmftbi11bjakq13n210q216db2a.png-54.1kB


三: oozie 的安装与配置:

3.1 安装oozie-4.0.0-cdh-5.3.6.tar.gz

  1. tar -zxvf oozie-4.0.0-cdh-5.3.6.tar.gz
  2. mv oozie-4.0.0.-cdh-5.3.5-bin yangyang/oozie

3.2 配置oozie 与hadoop 整合

编辑core-site.xml 增加:

  1. <property>
  2. <name>hadoop.proxyuser.hadoop.hosts</name>
  3. <value>namenode01.hadoop.com</value>
  4. </property>
  5. <property>
  6. <name>hadoop.proxyuser.hadoop.groups</name>
  7. <value>*</value>
  8. </property>

3.3 解压oozie 的lib 包

  1. cd /home/hadoop/yangyang/oozie
  2. tar -zxvf oozie-hadooplibs-4.0.0-cdh5.3.6.tar.gz
  3. cd oozie-4.0.0-cdh5.3.6/
  4. mv hadooplibs /home/hadoop/yangyang/oozie/

3.4 创建libext 文件与上传ext 文件

  1. cd /home/hadoop/yangyang/oozie
  2. mkdir libext
  3. cd /home/hadoop/yangyang/oozie/hadooplibs/hadooplib-2.5.0-cdh5.3.6.oozie-4.0.0-cdh5.3.6
  4. cp -p * /home/hadoop/yangyang/oozie/libext
  5. cd /home/hadoop/yangyang/oozie/libext
  6. rz ext-2.2.zip

3.5 安装mysql 数据库并生成mysql数据表

  1. 安装mysql 与拷贝驱动包
  2. yum install mysql (之前已经安装)
  3. cd /home/hadoop/mysql-connector-java-5.1.27
  4. cp -p mysql-connector-java-5.1.27-bin.jar /home/hadoop/yangyang/oozie/lib/
  5. cp -p mysql-connector-java-5.1.27-bin.jar /home/hadoop/yangyang/oozie/libext/

更改oozie 的配置文件oozie-site.xml 文件

  1. cd /home/hadoop/yangyang/oozie/conf

与mysql 关联处理

  1. <property>
  2. <name>oozie.service.JPAService.jdbc.driver</name>
  3. <value>com.mysql.jdbc.Driver</value>
  4. </property>
  5. <property>
  6. <name>oozie.service.JPAService.jdbc.url</name>
  7. <value>jdbc:mysql://namenode01.hadoop.com:3306/oozie</value>
  8. </property>
  9. <property>
  10. <name>oozie.service.JPAService.jdbc.username</name>
  11. <value>root</value>
  12. </property>
  13. <property>
  14. <name>oozie.service.JPAService.jdbc.password</name>
  15. <value>123456</value>
  16. </property>
  17. <property>
  18. <name>oozie.service.HadoopAccessorService.hadoop.configurations</name>
  19. <value>*=/home/hadoop/yangyang/hadoop/etc/hadoop</value>
  20. </property>

在mysql上面创建oozie 数据库

  1. mysql -uroot -p123456
  2. create database oozie;

image_1akhrd6g6pdn1j58gkp1b0bhrq34.png-21.4kB

执行oozie 命令生成数据:

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

image_1akhrf3h5jmrbcn1tkju11bjh3h.png-26.4kB

在mysql查看数据表

image_1akhria7epbp1irk11hg4pf593u.png-28.8kB

3.6 用setup命令 生产war 包

  1. bin/oozie-setup.sh prepare-war

image_1akhrr9p41g6a17di1qfjqhp1ga84b.png-67.2kB
image_1akhrthn81p721bklhrcq3g14u54o.png-25.4kB

3.7 把当前的目录包上传到hdfs 上面

  1. 修改oozie-site.xml
  2. ---
  3. <property>
  4. <name>oozie.service.WorkflowAppService.system.libpath</name>
  5. <value>/user/oozie/share/lib</value>
  6. </property>
  1. bin/oozie-setup.sh sharelib create -fs hdfs://namenode01.hadoop.com:8020 -locallib oozie-sharelib-4.0.0-cdh5.3.6-yarn.tar.gz

image_1akhsv0fv18bh1bl4lag1e3c1nev55.png-45.5kB

3.8 启动oozie

  1. bin/oozied.sh start

image_1akht22ji1l6bmspr2815kgtgn5i.png-44.6kB

3.9 访问测试:

  1. http://192.168.3.8:11000

image_1akht73911gevq9h1jj38v85jo5v.png-37kB

在hdfs查看lib 包

image_1akhtbnuj1n4jjota951odavit6c.png-84kB
image_1akhteh622cmobcpoaos71iiq6p.png-84.3kB

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注