打赏

Azkaban是什么?(一)

 

  不多说,直接上干货!

http://www.cnblogs.com/zlslch/category/938837.html

 

Azkaban是什么?

   Azkaban是一套简单的任务调度服务,整体包括三部分webserver、dbserver、executorserver。

      是linkin的开源项目,开发语言为Java

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

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

 

 

 

 

Azkaban典型使用场景

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

 

 

 

Azkaban官网

 https://azkaban.github.io/

 

posted @ 2017-01-17 19:45  大数据和AI躺过的坑  阅读(22159)  评论(0编辑  收藏  举报