大数据(十二) - 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_第1张图片

Oozie基本架构
大数据(十二) - Oozie_第2张图片

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

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

Oozie 层次结构
大数据(十二) - Oozie_第3张图片

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

Oozie 控制流
大数据(十二) - Oozie_第4张图片

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

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

你可能感兴趣的:(大数据)