• Azkaban


     Azkaban

    第一节:简介

    一、概念

    Azkaban是一套简单的任务调度服务,整体包括三部分webserver、dbserver、executorserver。

    Azkaban是linkin的开源项目,开发语言为Java。

    Azkaban是由Linkedin开源的一个批量工作流任务调度器。用于在一个工作流内以一个特定的顺序运行一组工作和流程。

    Azkaban定义了一种KV文件格式来建立任务之间的依赖关系,并提供一个易于使用的web用户界面维护和跟踪你的工作流。

    二、典型使用场景

    实际当中经常有这些场景:每天有一个大任务,这个大任务可以分成A,B,C,D四个小任务,A,B任务之间没有依赖关系,C任务依赖A,B任务的结果,D任务依赖C任务的结果。一般的做法是,开两个终端同时执行A,B,两个都执行完了再执行C,最后再执行D。这样的话,整个的执行过程都需要人工参加,并且得盯着各任务的进度。但是我们的很多任务都是在深更半夜执行的,通过写脚本设置crontab执行。其实,整个过程类似于一个有向无环图(DAG)。每个子任务相当于大任务中的一个流,任务的起点可以从没有度的节点开始执行,任何没有通路的节点之间可以同时执行,比如上述的A,B。总结起来的话,我们需要的就是一个工作流的调度器,而azkaban就是能解决上述问题的一个调度器。

    三、常用的调度机制

    基于时间,定时

    基于时间间隔的

    基于事件驱动的

    第二节:Azkaban的功能特点

    1、Web用户界面

    2、方便上传工作流

    3、方便设置任务之间的关系

    4、工作流调度

    5、认证/授权

    6、能够杀死并重启工作流

    7、模块化和可插拔的插件机制

    8、项目工作区

    9、工作流和任务的日志记录和审计

    第三节:Azkaban的架构

    Azkaban是一种类似于Oozie的工作流控制引擎,可以用来解决多个Hadoop(或Spark等)离线计算任务之间的依赖关系问题。也可以用其代替crontab来对周期性任务进行调度,并且更为直观,可靠,同时提供了美观的可视化管理界面。

    Azkaban由三部分构成:

    1、Relational Database(Mysql)

      azkaban将大多数状态信息都存于MySQL中,Azkaban Web Server 和 Azkaban Executor Server也需要访问DB。

    2、Azkaban Web Server

      提供了Web UI,是azkaban的主要管理者,包括 project 的管理,认证,调度,对工作流执行过程的监控等。

    3、Azkaban Executor Server

    调度工作流和任务,纪录工作流活任务的日志,之所以将AzkabanWebServer和AzkabanExecutorServer分开,主要是因为在某个任务流失败后,可以更方便的将重新执行。而且也更有利于Azkaban系统的升级

    MySQL实例:Azkaban使用MySQL来存储项目和执行。

    Azkaban Web服务器:Azkaban使用Jetty作为Web服务器,用作控制器以及提供Web界面。

    Azkaban执行服务器:Azkaban执行服务器执行提交工作流。

    第四节:oozie和azkaban的比较

    一、共同点

    都提供优美的可视化操作界面,托拉拽。

    二、区别

    1、oozie

    权限控制不好,没有。重配置,比较繁琐的。调度机制比较完善的。配置xml。支持高可用

    2、azkaban

    有完善的权限控制。相对来说较轻。调度机制没有oozie完善的90%。配置properties。azkaban 3.0之前不支持高可用的,3.0之后的版本支持的。

  • 相关阅读:
    bzoj3543: [ONTAK2010]Garden
    bzoj千题计划154:bzoj3343: 教主的魔法
    bzoj千题计划153:bzoj2431: [HAOI2009]逆序对数列
    bzoj千题计划152:bzoj3405: [Usaco2009 Open]Grazing2 移动牛棚
    bzoj1131: [POI2008]Sta
    Codeforces Round #204 (Div. 1) B. Jeff and Furik
    Codeforces Round #204 (Div. 1) A. Jeff and Rounding
    Codeforces Round #204 (Div. 1) D. Jeff and Removing Periods
    bzoj2738: 矩阵乘法
    bzoj2527: [Poi2011]Meteors
  • 原文地址:https://www.cnblogs.com/lizm166/p/13354567.html
Copyright © 2020-2023  润新知