zoukankan      html  css  js  c++  java
  • Oozie_初识

    Oozie 任务调度框架(基于工作流)

    oozie运行于hadoop集群,对hive,mr,flume,Soop,spark,shell等框架进行任务流调度
    如: job1-->job2 & job3-->job4 & job5...
    其中,job1用于采集数据,job2与job3用于数据清洗,job4,job5,jobn等用于数据分析
    对MR和pigJobs任务调度与协调,需要用到servlet容器(自身框架封装了TomcatHTTPServer)
    简单来说,该框架实现任务的自动化,各个处理部分不需要人为控制
    PS:oozie如果其中一个job处理失败,不会有回滚,其处理的方式是直接停止

    任务调度框架

    1. crontab(最简单的任务调度框架)
      格式: *(分) *(时) *(日) *(月) *(周) command
      1-6:连续的时间
      1,6:不连续的时间
      */1:每小时
      第1列表示分钟1~59 每分钟用*或者 */1表示
      第2列表示小时1~23(0表示0点)
      第3列表示日期1~31
      第4列表示月份1~12
      第5列标识号星期0~6(0表示星期天)
      第6列要运行的命令
      例
      30 21 * * * /usr/local/etc/rc.d/lighttpd restart
      上面的例子表示每晚的21:30重启apache
      45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart
      上面的例子表示每月1、10、22日的4 : 45重启apache
      10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart
      上面的例子表示每周六、周日的1 : 10重启apache
      0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart
      上面的例子表示在每天18 : 00至23 : 00之间每隔30分钟重启apache。
      0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart
      上面的例子表示每星期六的11 : 00 pm重启apache
      * */1 * * * /usr/local/etc/rc.d/lighttpd restart
      每一小时重启apache
      * 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart
      晚上11点到早上7点之间,每隔一小时重启apache
      0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart
      每月的4号与每周一到周三的11点重启apache
      0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart
      一月一号的4点重启apache   
        crontab -r : 删除目前的时程表
        crontab -l : 列出目前的时程表
        crontab file [-u user]-用指定的文件替代目前的crontab
    2. Azkaban
      linkdin:开源任务调度框架
       properties文件控制工作流
    3. Oozie
      Xml文件控制工作流
      大致工作流
      start -> job1 -> job2 & job3 -> ... --> ok > end
                                            --> faile -> kill
    4. Zeus
      宙斯是一个完整的Hadoop作业平台,支持
      Hadoop MR任务的调试运行
      Hive任务的调试运行
      Shell人数的运行
      Hive元数据的可视化查询数据与预览
      Hadoopr任务的自动调度
      PS:三者各有各的优点,但从使用角度来看oozie较流行,原因之一是hue框架能整合Hadoop所有框架,且界面友好,功能强大

    Oozie三大功能

    workflow jobs(简单的任务流)
    coordinator jobs(加入定时调度:起始时间,结束时间,频率)
    Bundle(多个coordinator jobs或这多个workflow的集合)

    Oozie的架构

    控制流节点 action
        起始,结束,并发,分支,合并
    动作节点 action
        job: mapreduce action
        job: hive action
        job: shell action
    子节点
     实现
        oozie server
        hadoop集群
        自带数据库 derby

    Oozie安装部署

    下载相应与Hadoop版本的oozie.tar.gz与ext-x.x.zip
      上传至linux
      安装oozieser
        配置hadoop代理core-site.xml
          hadoop.proxyuser.[OOZIE_SERVER_USER].hosts--[OOZIE_SERVER_HOSTNAME]
          hadoop.proxyuser.[OOZIE_SERVER_USER].groups--[USER_GROUPS_THAT_ALLOW_IMPERSONATION]
        重启Hadoop集群
      当前目录解压oozie-hadooplibs-4.0.0-cdh5.3.6.tar.gz
      oozie目录下多出一个oozie-4.0.0-cdh5.3.6文件夹(存放hadoop1与hadoop2的相关jar包)
      创建libext文件夹
        将hadoop对应版本的jar包放入
        将ext-x.x.zip也放入libext文件夹内
      创建sharelib库(HDFS上的jar库,用于运行所有job依赖)
        $ bin/oozie-setup.sh sharelib create -fs <FS_URI> [-locallib <PATH>]
        $ bin/oozie-setup.sh sharelib create -fs hdfs://hadoop09-linux-01.ibeifeng.com:8020 -locallib oozie-sharelib-4.0.0-cdh5.3.6-yarn.tar.gz
      打包libext目录的jar包作为oozie运行的jar包库
        $ bin/oozie-setup.sh prepare-war [-d directory] [-secure]
        $ bin/oozie-setup.sh prepare-war
      初始化数据库
        $ bin/ooziedb.sh create -sqlfile oozie.sql -run DB Connection
      简单配置两个属性
        oozie-default.xml
          org.apache.oozie.service.JobsConcurrencyService移至第一行
          if not oozie的后台目录中会报NullPointerException错误
        oozie-site.xml
        oozie.service.HadoopAccessorService.hadoop.configurations=*=/opt/cdh-5.6.3/hadoop-2.5.0-cdh5.3.6/etc/hadoop
          if not 会报/user/Hadoop/share/lib文件找不到错误
      启动oozie
        $ bin/oozied.sh start    (jps,进程多出一个BootStrap)    
    
  • 相关阅读:
    C++11常用特性的使用经验总结
    Websocket协议的学习、调研和实现
    高性能后台服务器架构设计
    Linux下ping命令、traceroute命令、tracert命令的使用
    docker-4-Dockerfile配置文件详解
    Docker 国内仓库和镜像
    centos7.0查看IP
    tomcat报错:This is very likely to create a memory leak问题解决
    windows 环境下搭建docker私有仓库
    Docker 修改镜像源地址
  • 原文地址:https://www.cnblogs.com/eRrsr/p/6097369.html
Copyright © 2011-2022 走看看