1.安装部署
1.下载
https://github.com/azkaban/azkaban
2.编译
下载完成后解压,进入目录,执行如下操作:
./gradlew build -x test
编译没什么坑,网速可以的话,很快就编译完了
3.简单配置
编译结束后,进入解压目录下的/azkaban-solo-server/build/distributions目录
两个都可以解压,随便解压一个,进入解压后的目录,cd到conf目录,配置如下两文件
azkaban-users.xml可以对登陆用户名密码进行增删查改
这里要注意,在添加 用户时,roles为admin,如果不是admin,创建project会有问题
azkaban.properties可以进行一些配置
4.启动solo-server服务
执行3步骤中解压目录下/bin/start-soloserver.sh脚本,可以在local下查看启动日志,
正常如果配置文件没问题,启动也没问题,对应端口号是8081
5.在浏览器中打开host:8081
显示如下
这里的用户名密码可在步骤3中进行配置,登入后便可以使用
2.简单使用
1.创建一个project
创建如下:
创建project成功后,可以上传工作流去执行。具体一个工作流怎么创建如下
azkaban提供了两种方式来创建工作流,1.0将不再被维护,所以这里使用zkaban-flow-version: 2.0
参照azkaban官方文档实践一次
1.
$ mkdir azkaban_helloworld
$ cd azkaban_helloworld
$ touch flow20.project
在flow20.project添加如下内容,这句话表明这是Flow 2.0 Azkaban项目
azkaban-flow-version: 2.0
2.
$ vi basic.flow
在其中添加官网模版
nodes:
- name: jobC
type: noop
# jobC depends on jobA and jobB
dependsOn:
- jobA
- jobB
- name: jobA
type: command
config:
command: echo "This is an echoed text."
- name: jobB
type: command
config:
command: pwd
完成后,将azkaban_helloworld打成zip包,一定是zip,其他不支持
$ zip -r azkaban_helloworld.zip azkaban_helloworld
adding: azkaban_helloworld/ (stored 0%)
adding: azkaban_helloworld/basic.flow (deflated 52%)
adding: azkaban_helloworld/flow20.project (stored 0%)
直观可以看出,jobC执行依赖于jobA和jobB
2.上传一个Flow
将刚才打好的zip包upload上去,如下所示:
点击
我们可以直观看到不同job之间的依赖关系,点击continue便可以执行,点击左下角的Schedule可以进行定时作业的设置
同时,在上图中,也可以右键job对job进行操作
图左边的几个操作,也很直观,可根据需要使用
需要修改命令的话,可以直接点击jobA,jobB,jobC,进行命令编辑,便无需再次打包上传