Azkaban是一个Hadoop workflow定时调度工具,它解决了多个Hadoop任务单元之间的前后依赖关系。它提供了十分友好的用户界面,使用简单,容易上手。在本博文中,你将学到,Azkaban的安装部署,Azkaban基础架构,Azkaban定时调度工作流程(包含Shell、MapReduce、Hive等)等重要知识
一、任务调度概述
1. 为什么需要工作流调度系统
1)一个完整的数据分析系统通常都是由大量任务单元组成:
shell 脚本程序,java 程序,mapreduce 程序、hive 脚本等。
2)各任务单元之间存在时间先后及前后依赖关系。
3)为了很好地组织起这样的复杂执行计划,需要一个工作流调度系统来调度执行。
例如,我们可能有这样一个需求,某个业务系统每天产生 20G 原始数据,我们每天都要对其进行处理,处理步骤如下所示:
(1)通过 Hadoop 先将原始数据同步到 HDFS 上;
(2)借助 MapReduce 计算框架对原始数据进行计算,生成的数据以分区表的形式存储到多张 Hive 表中;