一:概述

1.大数据协作框架

  

2.Hadoop的任务调度

  这个是常见的任务调度框架。

  

3.azkaban

  

4..Oozie的三大功能

  Oozie Workflow jobs :工作流任务,可以生成DAG图

  Oozie Coordinator jobs:可以定时调度

  Oozie Bundle:多个coordinator的集合,或者多个workflow的集合

  

5.Oozie的架构

  控制流节点

    起始,分支,并发,汇合,结束

  动作节点action

    执行的job。例如,mapreduce action,hive action ,shell action

  

6.Oozie的结构实现

  oozie server:可以实现界面化,同时,监控hadoop。

  

7.oozie的细节架构

  

二:安装部署

1.上传

  官网的说法:

    在quick start中。

  

  上传:

  

2.解压

  

3.配置Hadoop代理core-site.xml

  官网:

  

  配置:

  

4.启动Hadoop集群

5.解压hadooplib

  官网说法:

    

  将会生成:oozie-4.0.0-cdh5.3.6

   

6.生成

  进入oozie-4.0.0-cdh5.3.6,果然发现有官网说说的hadooplibs。

  

7.创建libext文件

  官网上的说法:

  

  操作:

  

8.拷贝hadooplib的jar包到libext中

  只拷贝jar。

  

9.拷贝js包到libext中

  js的作用:

  

  操作:

  

10.创建sharelib库:

  HDFS,用于运行所有job的依赖

  官网上的步骤:

  

  命令:

    bin/oozie-setup.sh sharelib create -fs hdfs://hadoop-senior02.ibeifeng.com:8020 -locallib oozie-sharelib-4.0.0-cdh5.3.6-yarn.tar.gz

  

  HDFS::

  

11.打包

  bin/oozie-setup.sh prepare-war

  

12.初始化数据库

  

  

13.启动

  多了一个Bootstrap进程。

  

  回来补充截图:

  

14.web端窗口

  端口:11000

  

三:运行官网的任务流

1.官网

  

2.解压家目录下的oozie-examples.tar.gz

  官网的设置:

  

  解压:

  tar -zxvf oozie-examples.tar.gz

  将会生成examples

3.进入examples,找到将要运行的mapreduce项目

  job.properties:mapreduce运行需要的配置项,指定workflow的地址,申明相关变量

  workflow.xml:实际运行的workflow

  

4.修改job.properties配置项

  注意的是:jobTracker是hadoop1的,现在使用的是resourcemanager,内部端口是8032.

       oozie.wf.application.path的路径是HDFS上的路径,指定了workflow的地址。

  

  位置:

  

5.修改oozie.site文件、

  因为在找包的时候,会找本地的配置环境。

  *=不能删除。

  

6.启动hadoop,并上传在家目录下examples项目

  bin/hdfs dfs -put /etc/opt/cdh-5.3.6/oozie-4.0.0-cdh5.3.6/examples examples

  

7.启动

  bin/oozie  job -oozie http://linux-hadoop3.ibeifeng.com:11000/oozie -config examples/apps/map-reduce/job.properties -run

  注意点:需要启动yarn。

  

  启动了两个mapreduce任务。

  

8.总结

  -》bin/oozie job -oozie http://hadoop-senior02.ibeifeng.com:11000/oozie -config examples/apps/map-reduce/job.properties -run

  提交任务

  -》oozie读取job.properties
  -》查找需要运行的wf的地址,将相应变量传递给wf
  -》读取wf的文件
    -》start节点
    -》action节点
    -》OK-》end
    -》error-》kill
  -》程序运行需要读取依赖的jar包
     lib目录
  -》全局则需要sharelib的jar包支持

四:自定义wordcount任务流

1.新建目录

  在家目录i下新建application,在下面建项目wc-wf(这个直接拷贝mapreduce的文件)

  

2.检测wordcount的jar包是否可以使用

 

3.HDFS上新建input目录,上传wc.inpu

  

4.上传wc2.jar

  目录/etc/opt/datas

5.在yarn上运行

  

6.证明jar包没有问题

  

7.修改job.properties

  

8.修改workflow.xml

  关于查找configuration,这个可以去刚刚运行的yarn中的程序,查看19888中的cinfiguration。

  因为,这个需要和jar中的配置一样,是mapreduce2.

  需要修改:队列的名称,map与reduce的class,map与reduce的输出类型。

  这个需要哪些参数,取决于jar中的friver需要的参数。

  

  

9.上传wc2.jar到wc-wf中的lib中

  其他的lib可以删除。

  

10.上传到HDFS上运行

   bin/hdfs dfs -put /etc/opt/cdh-5.3.6/oozie-4.0.0-cdh5.3.6/applications/ /

11.运行

  官网上推荐的运行命令,声明一下环境变量,就可以不使用-oozie参数。

  export OOZIE_URL="http://linux-hadoop3.ibeifeng.com:11000/oozie"

  bin/oozie  job  -config applications/wc-wf/job.properties -run

  

12.结果

  

  

五:自定义shell action的workflow

1.拷贝官方的shell,并命名为shell-wf

  

2.修改job.properties

  

3.在shell-wf中新建oozie.sh

  

4.修改workflow.xml

  主要是sh文件的绝对路径。

  

5.完成oozie.sh

  在oozie中,必须写#!/bin/bash

  因为这个sh要在机器上执行。

  

6.上传到HDFS

  bin/hdfs dfs -put /etc/opt/cdh-5.3.6/oozie-4.0.0-cdh5.3.6/applications/shell-wf/ /applications

7.运行

  bin/oozie job -config applications/shell-wf/job.properties -run

8.结果

  

六:DAG图的设计

1.拷贝wc-wf,并该名为dag-wf

  

2.将shell-wf中 的.sh拷贝到dag-wf中

  

3.修改job.properties

  

4.修改oozie.sh

  

5.修改workflow.xml

  

6.上传

  bin/hdfs dfs -put /etc/opt/cdh-5.3.6/oozie-4.0.0-cdh5.3.6/applications/dag-wf/ /applications

7.运行

  bin/oozie job -config applications/dag-wf/job.properties -run

8.结果

  

9.HDFS上

  

七:修改linux时区

1.说明

  因为,下面的coordinate的会使用。

  让时区变成中国的时区。

  

2.查看

  默认的是UTC。

  

2.如果不是+0800,则需要重新生成

  在linux中删除:

    rm -rf /etc/localtime

  重新生成,建立软连接:

    ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

3.修改时间

  

4.在oozie.site中修改时区

  

5.在js中修改时区

  因为web界面上的时间不对应,考虑到当时拷贝的js包。在oozie-server中的webapps中。

  

6.重新启动oozie

八:编写coordinate

  》基于时间的任务调度

    起始时间

    终止时间

    频率

  》基于数据可用性的调度

    文件是否存在

    判断数据是否符合标准

  》执行顺序

    job.properties

    coordinator.xml:完成时间的封装,然后指向workflow.xml

1.复制

  

2.修改job.properties

  指向两个地址,workflow.xml,coordinator.xml

  关于日期的配置,可以参考官网Datetime。

  

3.修改coordinator.xml

  下面修改频率。

  以及,时区。

  

4.修改oozie.xml

  因为,oozie的最小时间是5分钟。

  

5.重启oozie

6.上传到HDFS

   bin/hdfs dfs -put /etc/opt/cdh-5.3.6/oozie-4.0.0-cdh5.3.6/applications/cron-wf/ /applications

7.运行

  bin/oozie job -config applications/cron-wf/job.properties -run

8.结果

  任务的调度特点:包头不包尾。

  

  

九:支持crontab的任务调度

  上面的格式不仅支持,linux 的crontab格式也支持。

1.拷贝

  

2.修改job.properties

  

3.修改coordinate

  

4.上传

  bin/hdfs dfs -put /etc/opt/cdh-5.3.6/oozie-4.0.0-cdh5.3.6/applications/crontab/ /applications

5.运行

  bin/oozie  job  -config applications/crontab/job.properties -run

6.运行结果

  

  

  

  

    

068 Oozie任务调度框架的更多相关文章

  1. Oozie任务调度框架详解及使用简介(一)

    摘要:个人最近一段时间一直在使用oozie,从刚开始的各种别扭到现在越来越觉得有意思的情况下,想整理一下关于oozie的认知,整理出来一个oozie系列,本来市面上关于oozie的资料就比较少,希望写 ...

  2. 【niubi-job——一个分布式的任务调度框架】----niubi-job这下更牛逼了!

    niubi-job迎来第一次重大优化 niubi-job是一款专门针对定时任务所设计的分布式任务调度框架,它可以进行动态发布任务,并且有超高的可用性保证. 有多少人半夜被叫起来查BUG,结果差到最后发 ...

  3. 【niubi-job——一个分布式的任务调度框架】----安装教程

    niubi-job是什么 niubi-job是LZ耗时三个星期,费尽心血打造的一个具备高可靠性以及水平扩展能力的分布式任务调度框架,采用quartz作为底层的任务调度管理器,zookeeper做集群的 ...

  4. Quarzt.NET 任务调度框架

      Quartz.NET是一个开源的作业调度框架,是 OpenSymphony 的 Quartz API 的.NET移植,它用C#写成,可用于winform和asp.net应用中.它提供了巨大的灵活性 ...

  5. Quartz.Net任务调度框架

    Quartz.Net是一个开源的任务调度框架,非常强大,能够通过简单的配置帮助我们定时具体的操作. 相对于我们用的线程里面while(true)然后sleep来执行某个操作,应该算的上是高端,大气,上 ...

  6. 开源的.NET任务调度框架-HangFire

    什么是Hangfire Hangfire 是一个开源的.NET任务调度框架,目前1.6+版本已支持.NET Core.内置提供集成化的控制台,方便后台查看及监控: 另外,Hangfire包含三大核心组 ...

  7. .NET Core下开源任务调度框架Hangfire的Api任务拓展(支持秒级任务)

    HangFire的拓展和使用 看了很多博客,小白第一次写博客. 最近由于之前的任务调度框架总出现问题,因此想寻找一个替代品,之前使用的是Quartz.Net,这个框架方便之处就是支持cron表达式适合 ...

  8. 任务调度框架FluentScheduler简介

    之前我在文章中介绍过.net中的任务调度框架Hangfire,HangFire虽然本身输入比较简单好用的,但是,如果我们的程序本身提供的服务不是任务调度,而任务调度只是里面并不重要的小功能的时候,用H ...

  9. 任务调度框架Hangfire 简介

    任务调度是我们项目中常见的功能,虽然任务调度的功能实现本身并不难,但一个好用的轮子还是可以给我们的开发的效率提升不少的. 在.net环境中,较为有名的任务调度框架是HangFire与Quartz.NE ...

随机推荐

  1. 基于报错的SQL注入整理

    SQLServer 一.利用错误消息提取信息 输入 'having 1=1 --(having一般要与group by一起来使用,group by是用来进行分组的,having后面是用来进行判断的), ...

  2. 浏览器调用接口发现Provisional headers are shown

    一次请求时候报错 无论如何也找不到错误,后台接口和前端请求都是正确的.后来发现是 自己浏览器上装了广告拦截的插件 把我这个请求给拦截 果断卸载插件立马就好了.

  3. android 面试题(一)

    1.Android中真实宽高,getWidth和getMeasuredWidth的区别:哪个计算的是真实的宽? getWidth():得到的是View在父Layout中布局好后的宽度值,如果没有父布局 ...

  4. MFC创建线程示例

    MFC创建线程示例 AfxBeginThread() 创建现场的方法是AfxBeginThread()函数. 在[.CPP]文件定义一个全局变量,决定什么时候退出这个线程. BOOL g_bWillE ...

  5. Getting started with machine learning in Python

    Getting started with machine learning in Python Machine learning is a field that uses algorithms to ...

  6. linux内核中链表代码分析---list.h头文件分析(一)【转】

    转自:http://blog.chinaunix.net/uid-30254565-id-5637596.html linux内核中链表代码分析---list.h头文件分析(一) 16年2月27日17 ...

  7. crontab定时作业

    crontab用于在指定时间执行某项作业,如执行脚本或命令. 1.crontab -e      创建一个crontab文件,并添加作业(这个crontab的拥有者是创建者). 这里要注意:必须指定s ...

  8. 使用zabbix3.0.4的ICMP Ping模版实现对客户端网络状态的监控

    一.登陆Zabbix服务器做以下操作: 1.fping安装 wget http://www.fping.org/dist/fping-3.16.tar.gz tar zxvf fping-3.16.t ...

  9. Tpcc-MySQL对mysql数据库进行性能测试报告、分析及使用gnuplot生成图表展示

    TPC-C是专门针对联机交易处理系统(OLTP系统)的规范,一般情况下我们也把这类系统称为业务处理系统. tpcc-mysql是percona基于TPC-C(下面简写成TPCC)衍生出来的产品,专用于 ...

  10. SYN flooding引发的网络故障

    故障现象: 1.应用无法通过外网访问,应用服务器所在的内网网段之间(web和db数据库之间访问丢包严重)不能互相访问 其他网段正常 2.怀疑是网络设备问题,将连接该网段设备的交换机重启后故障依旧,通过 ...