azkaban 入门简介

前言

80后的同学们看到azkaban这个词,第一反应就会想起哈利波特。没错,就是哈利波特系列的第三部:阿兹卡班的囚徒(Harry Potter and the Prisoner of Azkaban)。这个囚徒,就是指Potter的教父小天狼星。一晃,哈利波特都写完多好多年了,俺们都从十多岁的小屁孩变成三十岁的中年人了。。。
当然,今天咱们文章的主角不是Potter,也不是小天狼星,也不是K.J.Rowling女士。而是一个开源项目,名字就叫azkaban…

需求

实际当中经常有这些场景:每天有一个大任务,这个大任务可以分成A,B,C,D四个小任务,A,B任务之间没有依赖关系,C任务依赖A,B任务的结果,D任务依赖C任务的结果。一般的做法是,开两个终端同时执行A,B,两个都执行完了再执行C,最后再执行D。这样的话,整个的执行过程都需要人工参加,并且得盯着各任务的进度。但是我们的很多任务都是在深更半夜执行的,通过写脚本设置crontab执行。其实,整个过程类似于一个有向无环图(DAG)。每个子任务相当于大任务中的一个流,任务的起点可以从没有度的节点开始执行,任何没有通路的节点之间可以同时执行,比如上述的A,B。总结起来的话,我们需要的就是一个工作流的调度器,而azkaban就是能解决上述问题的一个调度器。

azkaban的github地址:https://azkaban.github.io/
azkaban是由linkedin开源的。在github上的主页介绍有如下介绍:
azkaban 入门简介_第1张图片

azkaban组件简介

在文档页面,我们截了个简单的图,能对azkaban的组件有个基本的了解
azkaban 入门简介_第2张图片

从上面我们可以得出如下信息:
1.azkaban主要是应用于hadoop生态圈的任务调度的。我们在实际使用过程中,也主要是用来做hadoop相关任务的调度,其他任务的调度暂时还没有进行相关实践。
2.关键组件有三部分:web server,executor server,mysql。目前azkaban貌似只支持mysql数据库,相关的数据都存在mysql中。

后续再为大家介绍具体如何使用azkaban进行hadoop相关任务的调度。

你可能感兴趣的:(kylin,azkaban,sqoop)