Azkaban的介绍

161 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第18天,点击查看活动详情

什么是Azkaban

Azkaban 是由 Linkedin 公司推出的一个批量工作流任务调度器,主要用于在一个工作流内以一个特定的顺序运行一组工作和流程。它的配置是通过简单的 key:value 对的方式,通过配置中的 Dependencies 来设置依赖关系。

Azkaban 使用. job 配置文件建立任务之间的依赖关系,并提供一个易于使用的 web 用户界面维护和跟踪用户的工作流。

下载地址:azkaban.github.io/downloads.h…

Azkaban的特点

1、易于使用的Web界面。

可以通过Web界面上传任务,配置任务与任务之间的关系,实现工作流调度。

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

Azkaban有一个Web服务器和Executor服务器,Web模块负责任务的上传、监控、展示,Executor模块负责执行对应的任务。

兼容各种工作类型,并支持自定义工作类型,通过插件的方式配置。

3、认证和授权。

给某个工作流程添加了权限,那么只能被某个用户所看到。

4、能够杀死并重启工作流。

5、有邮件提醒功能。

Azkaban的架构

image.png

1、AzkabanWebServer:AzkabanWebServer 是整个 Azkaban 工作流系统的主要管理者, 它用户登录认证、负责 project 管理、定时执行工作流、跟踪工作流执行进度等一系列任务。

2、AzkabanExecutorServer:负责具体的工作流的提交、执行,它们通过 mysql 数据库来协调任务的执行。

3、关系型数据库(MySQL):存储大部分执行流状态,AzkabanWebServer 和AzkabanExecutorServer 都需要访问数据库。

执行流程图:

image.png