首页 > 代码库 > 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的架构(三)