Oozie基础知识:调度器简介及Oozie功能架构

来源:互联网 发布:js 回调函数 全局变量 编辑:程序博客网 时间:2024/05/21 09:46
1.Oozie调度框架
     * 工作流:将不同的业务进行编排
    如:import->hive->export
* 调度:对作业或任务和定时执行,或事件的触发执行
        如:时间触发、数据集的触发。
2.已有调度框架
     (1)hadoop常用的调度框架:
    * linux crontab 调度
    * Azkaban :有界面,比较简单,功能有限
    * Oozie:apache顶级项目。有界面,不好管理,适合做数据仓库,etl的公司使用
             主要问题是jar包的冲突方面,不好用
* Zeus:阿里开源,增加了监控界面,主要用其调度中心
     (2)linux crontab 调度简介
 * 规则:* * * * * cmd
      前面5个* 表示分,时,天,月,星期 
      最后一个是执行的命令。
 例:每分钟触发,将日期追加到bf-date.log日志中
     */1 * * * * /bin/date>>/opt/datas/bf-date.log
  * 命令
     crontab -e 添加调度
 crontab -l 查看有多少个调度
 crontab -r 删除一个高度
  * 缺点:不好管理,不能回滚
     (3)针对hadoop任务的作业调度
         对于mr:/opt/cdh5.3.6/hadoop.xx/bin/yarn jar /XXX/*.jar input output
         对于hive:/opt/cdh5.3.6/hive.xx/bin/hive -f hive-select-bflog.sql
         对于sqoop:/opt/cdh5.3.6/sqoop.xx/bin/sqoop --options-file sqoop-imp.txt
         对于shell script:/bin/sh xxx.sh 
3.Oozie功能架构
     (1)简介
   * 是一个工作流调度系统
* 工作流的调度是DAG(有向无环图)-Directed Acyclical Graphs
* Coordinator job可以通过时间和数据集的可用性触发
* 集成了Hadoop生态系统的其它任务,如mr,pig,hive,sqoop,distcp
* 可扩展:一个Oozie就是一个mr程序,但是仅仅是map,没有reduce
 可靠性:任务失败后的重试
     (2)具体内容
* 基于工作流的引擎,需要部署到java servlet容器中运行
* 工作流定义:通过xml文件实现流程的定义。有分支、并发、汇合等不两只功能的节点
* 定义了控制流节点(定义了流程的开始和结束,执行路径,如decision,fork,join)
     和动作节点(mr,pib,hadoop文件系统,ssh,http,email,子流程等)
              例:workflow 模板结构
 <workflow....>
     <start to='workcount'/>
     <action name='workcount'>mr的相关配置
      <map-reduce>
        mr的相关配置
      </map-reduce>
      <ok to='end'/>
      <error to='end'/>
   </action>
<kill name='kill'>
    <message>错误信息</message>
</kill>
 <workflow....>
(3)三大服务器模块
   * Oozie V3 :a server based Bundle engine:对多个coordinator进行封装
  可以启动,停止,挂起,关闭,重启一组coordinator的任务
* Oozie V2 :a server based Coordinator engine:可以运行多个workflow
  结构:start->workfows->end 
* Oozie V1 :a server based workflow engine
  结构:start->mr->pig->fork->mr/hive->join->end
(3)主要组件
   tomcat(servlet进行调用并页面显示任务),数据库(存储任务),Bundle,coordinator,workflow
原创粉丝点击