Azkaban 入门
2024-10-20 21:06:50
需求
实际当中经常有这些场景:每天有一个大任务,这个大任务可以分成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组件简介
在文档页面,我们截了个简单的图,能对azkaban的组件有个基本的了解
从上面我们可以得出如下信息:
1.azkaban主要是应用于hadoop生态圈的任务调度的。我们在实际使用过程中,也主要是用来做hadoop相关任务的调度,其他任务的调度暂时还没有进行相关实践。
2.关键组件有三部分:web server,executor server,mysql。目前azkaban貌似只支持mysql数据库,相关的数据都存在mysql中。
未完待续……
最新文章
- JAVA安全模型
- git 教程(13)--创建与合并分支
- DOM笔记
- 开始我的PostgreSQL的学习之旅
- VS编程中找不到Microsoft.Office.Core、Microsoft.Office.Interop.Word和VBIDE
- linux下的powershell,pash试用手记
- Gentoo 网络接口配置文件说明
- C#学习笔记(十二):正则表达式
- 观察者模式(二)--《Head First DesignPattern》
- Keil工程文件的建立、设置与目标文件的获得
- SignalR2.0开发实例之——创建房间聊天
- HTML5 新元素、HTML5 Canvas
- java操作docker示例(docker-java)
- Man方法
- meta中minimal-ui属性
- RDO快速部署OpenStack
- Linux环境变量详解与应用
- Linux命令之cd
- 使用Let’s Encrypt生成免费的SSL证书
- 《Linux内核设计与实现》学习总结 Chap18