一、引入

MapReduce Job

Hive 脚本任务

同一个业务:先后、定时调度

工作流: 定义工作流程

activity

jbpm

oozie: 大数据工作流定义与调度框架

专门定义与调度MapReduce Job工作流程

拓展:shell、hive、sqoop、hdfs

oozie演变过程:

v1 Workflow 工作流定义

v2 Coordinator 调度

  基于时间、基于数据集是否可用

v3 bundle 将某些相关的Cordinator集成在一块

调度批量执行

案例:

nginx收集日志,每天进行分割(一天一个文件) ---> shell

每天分割出来的日志文件,上传到hdfs上   ---> shell/flume

mapreduce job数据清洗/ hive udf udts进行数据清洗

hive hsql 进行业务上的统计分析  pv uv 会话

sqoop导出到mysql里面

定义

start

两类节点:

控制流程节点:

decision选择节点

fork

join

顺序

action节点:

MapReduce action

shell

hive

sqoop

Oozie执行workflow:底层是MapReduce去执行Workflow

工作流引擎:MapReduce

启动一个workflow实例,运行工作流中任务,通过Mapreduce来执行

二、安装部署

1. 下载

2. 解压安装

1)

2)tar -zxvf oozie-hadooplibs-4.0.0-cdh5.3.6.tar.gz -C ../

3)创建目录libext

/opt/modules/cdh/oozie-4.0.0-cdh5.3.6/libext

cp /opt/modules/cdh/oozie-4.0.0-cdh5.3.6/hadooplibs/hadooplib-2.5.0-cdh5.3.6.oozie-4.0.0-cdh5.3.6/*.jar /opt/modules/cdh/oozie-4.0.0-cdh5.3.6/libext/

4)cp /

ext-2.2.zip  ---> oozie使用了extjs

ext-2.2.zip copy 到 libext

5)将mysql的驱动包添加到libext

oozie需要有关系型数据库存储工作流运行过程中的状态流转信息

6)修改oozie-site.xml

oozie-env.sh

从CATALINA_OPTS看出,oozie内部使用的tomcat做应用服务器

7)打war包到tomcat中

bin/oozie-setup.sh prepare-war

成功:

New Oozie WAR file with added 'ExtJS library, JARs' at /opt/modules/cdh/oozie-4.0.0-cdh5.3.6/oozie-server/webapps/oozie.war

8)将tar包解压并上传依赖包到hdfs上

bin/oozie-setup.sh sharelib create -fs hdfs://beifeng-hadoop-02:9000 -locallib oozie-sharelib-4.0.0-cdh5.3.6-yarn.tar.gz

<property>
<name>oozie.service.WorkflowAppService.system.libpath</name>
<value>/user/${user.name}/share/lib</value>
<description>
System library path to use for workflow applications.
This path is added to workflow application if their job properties sets
the property 'oozie.use.system.libpath' to true.
</description>

9)初始化mysql中的oozie库

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

10)启动oozie

bin/oozied.sh start

netstat -tlnup | grep 11000

11)访问

http://beifeng-hadoop-02:11000/oozie/

三、oozie使用

1. 运行案例

使用oozie来运行 fof 好友推荐 mapredue,首先要确保MapReduce能正常运行。

mapreduce-example.jar findfof bestfof

2. Oozie:工作流程是通过配置文件进行配置

worflow.xml  参考examples里面的皮遏制

oorzie运行workflow是通过MapReduce运行,所以workflow的配置文件需要先放到hdfs上

如何定义工作流并运行工作流(以MapReduce为例):

(1)先在本地文件系统定义好配置

(2)编写两个配置

job.properties  workflow.xml

(3)创建lib目录,将mapreduce jar包放进去

job.properties

YANR 的调度器的队列

yarn调度,其实就是讲mr job放到某个queue上运行

队列:

(1)FIFO

(2)Fair公平队列:先尽可能将资源分配给某个Job

比如只有一个job时,拥有所有资源,当有另一个job要执行,则会分出部分资源

(3)容量队列:多个FIFO队列,每个队列有资源占有率

往YARN上提交Job,根据Job的资源要求安排合适队列运行job任务。

3. 将配置上传到hdfs

4. 运行

bin/oozie job -oozie http://beifeng-hadoop-02:11000/oozie -config /opt/datas/oozie-apps/fof-mr/job.properties -run

补充概念:

DAG有向无环图:

Oozie workflow

storm 数据流

spark 本质核心 DAG

<ok to ="">

1)Map Reduce action

2) shell action

Oozie执行具有本地特性的shell脚本:

引子shell脚本

真正要执行的shell脚本,要在哪台服务器上,引子shell脚本就放在哪台服务器上。

password='beifeng'

/usr/bin/expect

切割日志

3) hive action

4)sqoop action

《OD学Oozie》20160807Oozie的更多相关文章

  1. 《OD学oozie》20160813

    一.日志收集项目案例 1. oozie中依赖jar包 在工作目录下创建lib目录,上传依赖包的lib目录下 2. 作业 将日志收集与处理项目案例使用oozie的workflow执行 3. coordi ...

  2. 《OD学Hive》第六周20160730

    一.Hive的JDBC连接 日志分析结果数据,存储在hive中 <property> <name>hive.server2.thrift.port</name> & ...

  3. 《OD学hive》第四周0717

    一.Hive基本概念.安装部署与初步使用 1. 后续课程 Hive 项目:hadoop hive sqoop flume hbase 电商离线数据分析 CDH Storm:分布式实时计算框架 Spar ...

  4. 《OD学hadoop》第二周0703

    hdfs可视化界面: http://beifeng-hadoop-01:50070/dfshealth.html#tab-overview yarn可视化界面: http://beifeng-hado ...

  5. 《OD学hadoop》20160903某旅游网项目实战

    一.大数据的落地点 1.数据出售 数据商城:以卖数据为公司的核心业务 2. 数据分析 百度统计 友盟 GA IBM analysis 3.搜索引擎 4. 推荐系统 mahout 百分比 5.精准营销 ...

  6. 《OD学storm》20160827

    http://www.cnblogs.com/lujinhong2/p/4686512.html http://blog.csdn.net/paul_wei2008/article/details/2 ...

  7. 《OD学HBase》20160821

    一.HBase性能调优 1. JVM内存调优 MemStore内存空间,设置合理大小 memstore.flush.size 刷写大小 134217728 = 128M memstore.mslab. ...

  8. 《OD学HBase》20160820

    一.案例 微博: 微博内容: 关注用户和粉丝用户: 添加或移除关注用户 查看关注用户的微博内容 微博数据存储: 响应时间 秒级 无延迟 (1)mysql分布式 (2)hbase数据库 使用HBase数 ...

  9. 《OD学HBase》20160814

    一.HBase引入 http://hbase.apache.org/ 大数据的数据库 1. 概述 Hadoop生态系统中的一个分布式.可拓展.面向列.可伸缩,具有自动容错功能的数据库. NoSQL数据 ...

随机推荐

  1. Leetcode#89 Gray Code

    原题地址 二进制码 -> 格雷码:从最右边起,依次与左边相邻位异或,最左边一位不变.例如: 二进制: 1 0 0 1 1 1 0 |\|\|\|\|\|\| 格雷码: 1 1 0 1 0 0 1 ...

  2. java web项目,java类中获得WEB-INF路径

    private static String getWebInfPath() { URL url = 当前类.class.getProtectionDomain().getCodeSource().ge ...

  3. JS中函数的基础知识

    函数 一.  函数定义 函数又叫方法,在程序里面函数是用来执行某些特定功能的代码.为了减少重复使用代码,可以把特定功能的代码做成函数,需要使用时拿出来调用.alert();就是一个很常见的.简单的函数 ...

  4. BZOJ 1071组队

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1071 题目很好,居然写了很久,题解找了真多: 主要两种做法: O(n^2lgn),通过优先 ...

  5. MEAN实践——LAMP的新时代替代方案(上)

    摘要:90 年代,LAMP 曾风靡一时,然而随着需求的变迁和数据流量的激增,LAMP 已不可避免的走下神坛.近日,在 MongoDB Blog 中,Dana Groce 介绍了一个基于新时代架构的实践 ...

  6. 为Form中的控件增加自适应功能 转

    创建一个基于Custom的类resizeable,并新建属性和方法程序,其说明如下: a) 新建属性: posiTyperList 可调整位置的控件类型列表sizeTypeList 可调整大小的控件类 ...

  7. HDU 3623 Best Cow Line, Gold(模拟,注意思路,简单)

    题目 POJ 3617 和 这道题题目一样,只是范围稍稍再小一点. //模拟试试 #include<stdio.h> #include<string.h> #include&l ...

  8. H5+ and mui学习记录

    基础 1.H5+ 定义实现了一些调用原生方法的对象 2.其他的原生方法可以通过Native.js调用 webview 3.webview是调用原生界面的H5+对象 4.单个webview只承载单个页面 ...

  9. line-height 与垂直居中!

    在此之前,对于line-height 与垂直居中的问题,经常碰到. 比如,图片与span在同一个box中的时候,竟然会各种偏移.要想达到理想的效果真的是各种难. 有时间,决定认真的啃一啃. 一 lin ...

  10. 14个Xcode中常用的快捷键操作

    在Xcode 6中有许多快捷键的设定可以使得你的编程工作更为高效,对于在代码文件中快速导航.定位Bug以及新增应用特性都是极有效的. 当然,你戳进这篇文章的目的也在于想要快速的对代码文件进行操作,或者 ...