Oozie协作框架

时间:2024-12-20 19:34:37

一:概述

1.大数据协作框架

  Oozie协作框架

2.Hadoop的任务调度

  Oozie协作框架

3.Oozie的三大功能

  Oozie Workflow jobs

  Oozie Coordinator jobs

  Oozie Bundle

4.Oozie的架构

  控制流节点

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

  动作节点action

5.Oozie的实现

  Oozie协作框架

二:安装部署

1.上传

  Oozie协作框架

2.解压

  Oozie协作框架

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

  Oozie协作框架

4.启动Hadoop集群

5.解压hadooplib

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

   Oozie协作框架

6.生成

  Oozie协作框架

7.创建libext文件

  Oozie协作框架

8.拷贝hadooplib的jar包到libext中

  Oozie协作框架

9.拷贝js包到libext中

  Oozie协作框架

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

  Oozie协作框架

  HDFS::

  Oozie协作框架

11.打包

  bin/oozie-setup.sh prepare-war

  Oozie协作框架

12.初始化数据库

  Oozie协作框架

  Oozie协作框架

13.启动

  Oozie协作框架

14.web端窗口

  Oozie协作框架

三:运行官网的任务流

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

  将会生成examples

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

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

  workflow.xml:实际运行的workflow

  Oozie协作框架

3.修改job.properties配置项

  Oozie协作框架

4.修改oozie.site文件

  Oozie协作框架

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

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

  Oozie协作框架

6.启动

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

  Oozie协作框架

7.总结

  -》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.新建目录

  新建application,在下面建项目wc-wf

  Oozie协作框架

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

 

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

  Oozie协作框架

4.上传wc2.jar

  目录/etc/opt/datas

5.在yarn上运行

  Oozie协作框架

6.证明jar包没有问题

  Oozie协作框架

7.修改job.properties

  Oozie协作框架

8.修改workflow.xml

  Oozie协作框架

  Oozie协作框架

  

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

  Oozie协作框架

10.上传到HDFS上运行

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

11.运行

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

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

  Oozie协作框架

12.结果

  Oozie协作框架

五:自定义shell action的workflow

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

  Oozie协作框架

2.修改job.properties

  Oozie协作框架

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

  Oozie协作框架

4.修改workflow.xml

  Oozie协作框架

5.完成oozie.sh

  Oozie协作框架

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.结果

  Oozie协作框架

六:DAG图的设计

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

  Oozie协作框架

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

  Oozie协作框架

3.修改job.properties

  Oozie协作框架

4.修改oozie.sh

  Oozie协作框架

5.修改workflow.xml

  Oozie协作框架

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.结果

  Oozie协作框架

9.HDFS上

  Oozie协作框架

七:修改linux时区

1.查看

  Oozie协作框架

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

  在linux中删除:

    rm -rf /etc/localtime

  重新生成:

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

3.修改时间

  Oozie协作框架

4.在oozie.site中修改时区

  Oozie协作框架

5.在js中修改时区

  Oozie协作框架

6.重新启动oozie

八:编写coordinate

1.复制

  Oozie协作框架

2.修改job.properties

  Oozie协作框架

3.修改coordinator.xml

  Oozie协作框架

4.修改oozie.xml

  Oozie协作框架

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.结果

  Oozie协作框架

  Oozie协作框架

九:支持crontab的任务调度

1.拷贝

  Oozie协作框架

2.修改job.properties

  Oozie协作框架

3.修改coordinate

  Oozie协作框架

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.运行结果

  Oozie协作框架

  Oozie协作框架