首页 > 代码库 > Azkaban的架构(三)

Azkaban的架构(三)

 

Azkaban是什么?(一)

Azkaban的功能特点(二)

  不多说,直接上干货!

http://www.cnblogs.com/zlslch/category/938837.html

 

 

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执行服务器执行提交工作流。

 

 

 

 

Azkaban架构的三种运行模式

  1、solo server mode

    H2

    web server 和 executor server运行在一个进程里

  最简单的模式,数据库内置的H2数据库,管理服务器和执行服务器都在一个进程中运行,任务量不大项目可以采用此模式。

  2、two server mode

    MySQL(主从结构)

    web server 和 executor server运行在不同的进程

  数据库为mysql,管理服务器和执行服务器在不同进程,这种模式下,管理服务器和执行服务器互不影响

  3、multiple executor mode

    MySQL(主从结构)

    web server 和 executor server运行在不同的进程

    executor server有多个

  该模式下,执行服务器和管理服务器在不同主机上,且执行服务器可以有多个。

  注意:我这次采用第二种模式,管理服务器、执行服务器分进程,但在同一台主机上。

Azkaban的架构(三)