1.azkaban是什么
是一个简单的任务调度器,批量工作流任务调取器,
java开发,
包含三个部分,webserver,dbserver,executorserver,linkin的开源项目
使用一种kv格式的文件来建立任务之间的相互关系,
提供了web界面用于跟踪和维护工作流
2.使用场景
多个任务存在相互依赖的关系,比如ABCD四个任务,AB任务没有任何关系,C任务需要使用AB任务的数据,D任务需要使用C任务的数据,这样的话使用shell脚本加crontab就不太容易实现,这个时候就可以使用azkaban来调度这种类型的任务(类似一个有向无环图)
3.有向无环图(DAG)
有向无环图指的是一个无回路的有向图
类似下图:
4.简单使用
步骤如下:
1.创建一个文件夹test(你的项目)
2.初始化项目(创建一个文件)
az.project
azkaban-flow-version: 2.0
3.创建任务流文件(主要是通过该文件进行任务调度)
test.flow
nodes:
- name: JobA
type: command
config:
command: echo "hello"
4.在页面端创建一个空的项目
5.将test文件夹压缩成zip文件
6.上传任务
7.点击执行任务