辅助框架之azkaban工作流调度器

1. 为什么需要工作流调度系统

(1)完整的数据分析系统通常都是由大量任务单元组成;包括:shell脚本程序、java程序、mapreduce程序、hive脚本等

(2)各任务单元之间存在时间先后及前后依赖关系

(3)为了很好地组织起这样的复杂执行计划,需要一个工作流调度系统来调度执行。

2. Azkaban是什么

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

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

(3)功能特点:

  • 提供功能清晰、简单易用的web UI界面
  • 提供job配置文件快速建立任务和任务之间的关系
  • 提供模块化的可插拔机制,原生支持command、java、hive、hadoop
  • 基于java开发,代码结构清晰,易于二次开发

3. Azkaban基本架构

辅助框架之azkaban工作流调度器

Azkaban由三部分构成:

(1)Azkaban Web Server

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

(2)Azkaban Executor Server

负责具体的工作流和任务的调度提交

(3)Mysql

用于保存项目、日志或者执行计划之类的信息

4. Azkaban架构的三种运行模式

(1)solo server mode(单机模式)

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

(2)two server mode

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

(3)multiple executor mode

web server 和 executor server运行在不同的进程,executor server有多个。
该模式下,执行服务器和管理服务器在不同主机上,且执行服务器可以有多个。

5. Azkaban启动

5.1 启动web server服务

  • 在azkaban web server服务器目录下执行启动命令

        bin/azkaban-web-start.sh

5.2 启动executor执行服务

  • 在azkaban executor服务器目录下执行启动命令

              bin/azkaban-executor-start.sh

5.3页面访问

启动完成后,在浏览器中输入https://服务器IP地址:8443,如图:

辅助框架之azkaban工作流调度器

6.Azkaban需要注意的问题

(1)配置文件 azkaban.properties中,只要涉及到路径的,都要将其中默认的相对路径改为绝对路径。否则会报文件不存在、 certificate_unknown等错误。

辅助框架之azkaban工作流调度器