Azkaban
原创大约 3 分钟
编译安装
Azkaban是Linkedin开源的轻量级批量任务流调度器(和它类似的还有Oozie,但它是重量级的)。
可以在这个地址https://github.com/azkaban/azkaban/tags下载它。
> wget https://github.com/azkaban/azkaban/archive/refs/tags/4.0.0.tar.gz
> mv 4.0.0.tar.gz azkaban-4.0.0.tar.gz
> tar -zxvf azkaban-4.0.0.tar.gz
> cd azkaban-4.0.0
然后再按照官网的示例开始单机模式的编译安装。
> ./gradlew build installDist
......
编译完成后,会在当前目录下产生一个名称为azkaban-solo-server
的目录。
> cd azkaban-solo-server/build/install/azkaban-solo-server
# 更改时区
> vi conf/azkaban.properties
# 更改 default.timezone.id=America/Los_Angeles 部分
default.timezone.id=Asia/Shanghai
# 启动azkaban
> ./bin/azkaban-solo-start.sh
Azkaban启动后,默认会监听8081
端口。

提交独立任务
首先,鼠标左键单击Create Project
按钮,输入项目名称和描述。


先创建一个用来测试的test.job
。
> mkdir -p /home/work/azkaban
> cd /home/work/azkaban
> vi test.job
# test.job
# type为任务类型,command表示执行一条命令
type=command
command=echo "Hello, Azkaban!"
然后将test.job
添加到一个压缩包中去。
> cd /home/work/azkaban
> zip test.zip test.job
然后将这个压缩包上传到Azkaban。



在接下来的界面中,继续单击Continue
。

也可以通过单击Job List
中的Details
查看任务执行的明细信息。
如果想让任务定时执行,可以在执行时设置定时信息。


可以看到,界面是按照crontab
风格显示的,并且显示了接下来的10次定时调用时间。
单击Schedule
后,在接下的界面中继续单击Continue
完成设置。

提交依赖任务
现在继续创建一个有依赖的任务。
先创建两个用来测试的任务文件,分别是first.job
和second.job
。
> cd /home/work/azkaban
> vi first.job
type=command
command=echo "this is a first!"
> vi second.job
type=command
# 多了dependencies选项
dependencies=first
command=echo "this is a second!"
然后将这两个job
添加到一个压缩包中去。
> cd /home/work/azkaban
> zip dependency.zip first.job second.job
接着再在Azkaban中创建dependency
项目(名字可以随便起)。

然后和前面一样的方式上传zip
压缩文件,上传完成后就能看到任务之间具有明显的层级(依赖)关系。

单击Execute Flow
后显示任务的依赖关系。

单击下面的Execute
,然后再单击Continue
,就可以看到执行结果。


感谢支持
更多内容,请移步《超级个体》。