Azkaban简单定时任务-使用教程
Azkaban是由Linkedin公司推出的一个批量工作流任务调度器,用于在一个工作流内以一个特定的顺序运行一组工作和流程。Azkaban使用job配置文件建立任务之间的依赖关系,并提供一个易于使用的web用户界面维护和跟踪你的工作流。
1.登录Azkaban
![](https://image.shishitao.com:8440/aHR0cHM6Ly91cGxvYWQtaW1hZ2VzLmppYW5zaHUuaW8vdXBsb2FkX2ltYWdlcy8yOTgxMTQzLWZhOTlmMDA0ODVkNTlhNmYucG5nP2ltYWdlTW9ncjIvYXV0by1vcmllbnQvc3RyaXB8aW1hZ2VWaWV3Mi8yL3cvMTIwMC9mb3JtYXQvd2VicA%3D%3D.png?w=700&webp=1)
2.菜单栏
projects:最重要的部分,创建一个工程,所有flows将在工程中运行。
scheduling:显示定时任务
executing:显示当前运行的任务
history:显示历史运行任务
HDFS:Azkaban结合hdfs的插件,显示HDFS服务器上的文件信息
Reportal:定制化定时邮件报表,数据源可以是Hive,pig,Teradata
3.创建工程(任务)
创建之前我们先了解下之间的关系,一个工程包含一个或多个flows,一个flow包含多个job。job是你想在azkaban中运行的一个进程,可以是简单的linux命令,可是java程序,也可以是复杂的shell脚本,当然,如果你安装相关插件,也可以运行插件。一个job可以依赖于另一个job,这种多个job和它们的依赖组成的图表叫做flow。
1)首先创建一个工程,填写名称和描述,比如test-001。
注意:project的name不支持中文
![](https://image.shishitao.com:8440/aHR0cHM6Ly91cGxvYWQtaW1hZ2VzLmppYW5zaHUuaW8vdXBsb2FkX2ltYWdlcy8yOTgxMTQzLThkNTM0NDlmNzFkZmZjYmEucG5nP2ltYWdlTW9ncjIvYXV0by1vcmllbnQvc3RyaXB8aW1hZ2VWaWV3Mi8yL3cvMTIwMC9mb3JtYXQvd2VicA%3D%3D.png?w=700&webp=1)
2)新建project后可以通过upload上传zip格式的任务包
![](https://image.shishitao.com:8440/aHR0cHM6Ly91cGxvYWQtaW1hZ2VzLmppYW5zaHUuaW8vdXBsb2FkX2ltYWdlcy8yOTgxMTQzLWIzN2RkMDYyM2M2NDcwMDIucG5nP2ltYWdlTW9ncjIvYXV0by1vcmllbnQvc3RyaXB8aW1hZ2VWaWV3Mi8yL3cvMTIwMC9mb3JtYXQvd2VicA%3D%3D.png?w=700&webp=1)
3)azkaban可以运行unix命令,也可以运行python脚本
在本地新建一个名为command.job的文件内容如下:
type=command
command=echo “test 001"
将上述job打成zip包,点击upload选择zip包上传。
![](https://image.shishitao.com:8440/aHR0cHM6Ly91cGxvYWQtaW1hZ2VzLmppYW5zaHUuaW8vdXBsb2FkX2ltYWdlcy8yOTgxMTQzLTc4YzhkMGEyZTJkOTU4ZWIucG5nP2ltYWdlTW9ncjIvYXV0by1vcmllbnQvc3RyaXB8aW1hZ2VWaWV3Mi8yL3cvMTIwMC9mb3JtYXQvd2VicA%3D%3D.png?w=700&webp=1)
可使用Run job执行command.job
![](https://image.shishitao.com:8440/aHR0cHM6Ly91cGxvYWQtaW1hZ2VzLmppYW5zaHUuaW8vdXBsb2FkX2ltYWdlcy8yOTgxMTQzLWMwOTY3YzUyODYwZGUzMzkucG5nP2ltYWdlTW9ncjIvYXV0by1vcmllbnQvc3RyaXB8aW1hZ2VWaWV3Mi8yL3cvMTIwMC9mb3JtYXQvd2VicA%3D%3D.png?w=700&webp=1)
![](https://image.shishitao.com:8440/aHR0cHM6Ly91cGxvYWQtaW1hZ2VzLmppYW5zaHUuaW8vdXBsb2FkX2ltYWdlcy8yOTgxMTQzLTA0N2EyZWI5YzQ1OGQzYzUucG5nP2ltYWdlTW9ncjIvYXV0by1vcmllbnQvc3RyaXB8aW1hZ2VWaWV3Mi8yL3cvMTIwMC9mb3JtYXQvd2VicA%3D%3D.png?w=700&webp=1)
Flows:工作流程,如果有多个job组成,例子只有一个job
Permissions:权限管理
Project Logs:工程日志
4)使用Schedule指定定时计划任务
![](https://image.shishitao.com:8440/aHR0cHM6Ly91cGxvYWQtaW1hZ2VzLmppYW5zaHUuaW8vdXBsb2FkX2ltYWdlcy8yOTgxMTQzLTNiNWQzZmQ1OTYzYzM2ODAucG5nP2ltYWdlTW9ncjIvYXV0by1vcmllbnQvc3RyaXB8aW1hZ2VWaWV3Mi8yL3cvMTE2OC9mb3JtYXQvd2VicA%3D%3D.png?w=700&webp=1)
5)进入Schduling菜单可查看所有的定时任务列表
![](https://image.shishitao.com:8440/aHR0cHM6Ly91cGxvYWQtaW1hZ2VzLmppYW5zaHUuaW8vdXBsb2FkX2ltYWdlcy8yOTgxMTQzLTAwZDEwYTM2YTZhNjY2YWQucG5nP2ltYWdlTW9ncjIvYXV0by1vcmllbnQvc3RyaXB8aW1hZ2VWaWV3Mi8yL3cvMTIwMC9mb3JtYXQvd2VicA%3D%3D.png?w=700&webp=1)