一个完整的大数据分析系统,必然由很多任务单元 (如数据收集、数据清洗、数据存储、数据分析等) 组成,所有的任务单元及其之间的依赖关系组成了复杂的工作流。复杂的工作流管理涉及到很多问题:
面对这些问题,工作流调度系统应运而生。Azkaban 就是其中之一。
Azkaban 产生于 LinkedIn,并经过多年生产环境的检验,它具备以下功能:
Azkaban 的设计理念是在保证功能实现的基础上兼顾易用性,其页面风格清晰明朗,下面是其 WEB UI 界面:
Azkaban 和 Oozie 都是目前使用最为广泛的工作流调度程序,其主要区别如下:
Azkaban 3.x 提供了两种运行模式:
webServer
(管理服务器) 和 executorServer
(执行服务器) 运行在同一个进程中,进程名是 AzkabanSingleServer
。该模式适用于小规模工作流的调度。webServer
和 executorServer
在不同进程中运行,彼此之间互不影响,适合用于生产环境。Oozie 使用 Tomcat 等 Web 容器来展示 Web 页面,默认使用 derby 存储工作流的元数据,由于 derby 过于轻量,实际使用中通常用 MySQL 代替。
如果你的工作流不是特别复杂,推荐使用轻量级的 Azkaban,主要有以下原因:
内容来源于网络,如有侵权,请联系作者删除!