Azkaban初认识
文章目录
- Azkaban初认识
- Azkaban是什么?
- 为什么需要工作流调度系统?
- 常见的工作流调度系统
- Azkaban 与 Oozie的对比
Azkaban是什么?
Azkaban是一个开源的
分布式工作流管理器
,在按顺序运行
,从ETL工作到数据分析产品。
为什么需要工作流调度系统?
(1)一个完整的数据分析系统通常都是由大量任务单元
组成:
比如说:Shell 脚本程序,Java 程序,MapReduce 程序、Hive 脚本等
(2)各任务单元之间存在时间先后及前后依赖关系
(3)为了很好地组织起这样的复杂执行计划,需要一个工作流调度系统来调度执行;
举个栗子:
-
假设某个业务系统每天产生20G原始数据,我们每天都要对其进行处理
- 先将原始数据同步到HDFS上(
HDFS
) - 对原始数据进行计算(
MapReduce
) - 生成的数据以
分区表
的形式存储到多张Hive表中(Hive表) - 多张Hive表进行
Join操作
得到一个`明细数据大表(Hive大表) - 将明细数据进行复杂的统计分析,得到结果报表信息(结果报表)
- 将统计分析得到的结果数据同步到业务系统中(业务系统)
- 先将原始数据同步到HDFS上(
-
总结:为了很好地组织起这样的复杂执行计划,我们就迫切需要一个工作流调度系统来调度执行相应的任务
常见的工作流调度系统
-
简单
的任务调度:直接使用 Linux 的Crontab
来定义; -
复杂
的任务调度:开发调度平台或使用现成的开源调度系统,比如 Ooize、Azkaban、Airflow、DolphinScheduler 等。
Azkaban 与 Oozie的对比
总体来说,Ooize 相比 Azkaban 是一个
重量级
的任务调度系统,功能全面,但配置使用 也更复杂。如果可以不在意某些功能的缺失,轻量级调度器 Azkaban 是很不错的候选对象。
总的来说,使用Azkaban而不是Ooize 的最大原因是它符合了我们的基本日常使用需求,并且它是轻量级的调度系统,不会过度地加大我们的系统压力,以免造成不必要的故障。
全文结束!