Azkaban简单定时任务-使用教程
Azkaban简单定时任务-使用教程
Azkaban是由Linkedin公司推出的一个批量工作流任务调度器,用于在一个工作流内以一个特定的顺序运行一组工作和流程。Azkaban使用job配置文件建立任务之间的依赖关系,并提供一个易于使用的web用户界面维护和跟踪你的工作流。
1.登录Azkaban
![](https://upload-images.jianshu.io/upload_images/2981143-fa99f00485d59a6f.png?imageMogr2/auto-orient/strip|imageView2/2/w/1200/format/webp)
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://upload-images.jianshu.io/upload_images/2981143-8d53449f71dffcba.png?imageMogr2/auto-orient/strip|imageView2/2/w/1200/format/webp)
2)新建project后可以通过upload上传zip格式的任务包
![](https://upload-images.jianshu.io/upload_images/2981143-b37dd0623c647002.png?imageMogr2/auto-orient/strip|imageView2/2/w/1200/format/webp)
3)azkaban可以运行unix命令,也可以运行python脚本
在本地新建一个名为command.job的文件内容如下:
type=command
command=echo “test 001"
将上述job打成zip包,点击upload选择zip包上传。
![](https://upload-images.jianshu.io/upload_images/2981143-78c8d0a2e2d958eb.png?imageMogr2/auto-orient/strip|imageView2/2/w/1200/format/webp)
可使用Run job执行command.job
![](https://upload-images.jianshu.io/upload_images/2981143-c0967c52860de339.png?imageMogr2/auto-orient/strip|imageView2/2/w/1200/format/webp)
![](https://upload-images.jianshu.io/upload_images/2981143-047a2eb9c458d3c5.png?imageMogr2/auto-orient/strip|imageView2/2/w/1200/format/webp)
Flows:工作流程,如果有多个job组成,例子只有一个job
Permissions:权限管理
Project Logs:工程日志
4)使用Schedule指定定时计划任务
![](https://upload-images.jianshu.io/upload_images/2981143-3b5d3fd5963c3680.png?imageMogr2/auto-orient/strip|imageView2/2/w/1168/format/webp)
5)进入Schduling菜单可查看所有的定时任务列表
![](https://upload-images.jianshu.io/upload_images/2981143-00d10a36a6a666ad.png?imageMogr2/auto-orient/strip|imageView2/2/w/1200/format/webp)