首页 > 代码库 > 大数据(十二) - Oozie

大数据(十二) - Oozie

基本概念
    眼下计算框架和作业类型繁多:
        MapReduce Java、Streaming、HQL、Pig等
    怎样对这些框架和作业进行统一管理和调度:
        不同作业之间存在依赖关系(DAG);
        周期性作业
        定时运行的作业
        作业运行状态监控与报警
    多种解决方式:
        Crontab
        自己设计调度系统
        直接使用开源系统

Hadoop作业流调度系统基本功能
    对常见作业类型进行调度
        MapReduce(Java、Streaming等)作业
        Hive作业
        Pig作业
        Shell ….
     依据须要对作业进行调度
        按周期调度
        定时调度……
     支持容错与报警
     可视化作业流执行过程

常见的开源作业流调度系统
     Oozie (已经成为hadoop标配)
        Yahoo。开源,基于xml表达作业依赖关系;
    Azkaban
        Linkedin开源,通过Java property配置作业依赖关系
    Zeus(宙斯) (据说不再更新)
        阿里开源,通过界面配置作业依赖关系
    其它开源系统
        Cascading(通过Java API编程实现作业依赖关系)

Oozie执行流程
技术分享

Oozie基本架构
技术分享

Oozie 使用方式
        Oozie CLI
        JAVA API
        REST API
        WEB UI(仅仅读)

Oozie基本概念
         作业流由一组行为节点(HadoopMR作业、Hive作业等)构成,且这些节点通过控制流节点相连;
                控制流节点定义了工作流的起始与结束,并控制着工作流的运行路径;
                行为节点包括一个计算/处理任务。包括:Hadoop map-reduce, HDFS, Pig, SSH, HTTP, eMail等
        Oozie工作流是通过hPDL语言(一种XML过程定义语言)编写的。

Oozie 层次结构
技术分享

Oozie Action
        支持Hadoop map-reduce, HDFS,Pig, SSH, HTTP, eMail等;
        可设置重试次数。


Oozie 控制流
技术分享

Coordinator
        定期运行一个工作流;
        数据准备完成后运行一个工作流。

Oozie官网
    http://oozie.apache.org/

大数据(十二) - Oozie