Azkaban
- azkaban
- 是由领英退出的一款开源免费的工作流调度器软件
- 特点
- 功能强大 可以调度几乎所有软件的执行(command)
- 配置简单 job配置文件
- 提供了web页面使用
- java语言开发 源码清晰可见 可以进行二次开发
- 架构
- web服务器 :对外提供web服务 用户在页面上进行项目的相关管理
- executor服务器:负责具体的工作流的调度提交。
- 数据库:用于保存工作流相关信息(比如:mysql)
- 部署模式
- 单节点模式:web、executor在同一个进程 适用于测试体验
- two-server:web、executor在不同的进程中 可以使用第三方数据库
- mutil-executor-server:web、executor在不同的机器上 可以部署多个executor服务器
-
安装部署
-
单节点部署模式 注意时区 内存检测的关闭
-
启动时候必须在安装包的根目录下进行启动
bin/start-solo.sh 正确 ./start-solo.sh 错误
-
-
azkaban开发流程
-
编写job的配置文件 xxxxx.job
type=command command=xxxx
-
把所有job配置打成一个zip的压缩包
-
登录页面node-1:8081 创建工程(默认用户名密码都是azkaban)
-
上传zip压缩包
-
选择调度schduler或者立即执行executor工程。
-
-
two server模式部署
- 该模式的特点是web服务器和executor服务器分别位于不同的进程中
- 使用第三方的数据库进行数据的保存 :mysql
- 安装部署注意事项
- 先对mysql进行初始化操作
- 配置azkaban.properties 注意时区 mysql相关 ssl
- 启动时候注意需要自己手动的激活executor服务器 在根目录下启动
- 如果启动出错 通过安装包根目录下的日志进行判断
- 访问的页面https
-
multiple-executor部署模式
-
所谓的 multiple-executor指的是可以在多个机器上分别部署executor服务器
相当于做了一个负载均衡
-
特别注意:executor启动(包括重启)的时候 默认不会激活 需要自己手动激活
对应的mysql中的表executors active :0 表示未激活 1表示激活
可以自己手动修改数据提交激活 也可以使用官方的命令请求激活
curl -G "node-3:$(<./executor.port)/executor?action=activate" && echo
- azkaban调度总结
- 理论上任何一款软件,只有可以通过shell command执行 都可以转化成为azkaban的调度执行
- type=command command = sh xxx.sh