在做服务器开发时,我们经常会涉及到定时任务的处理。在linux环境,常用而简便的方式是使用crontab来定时启动执行我们的任务。但是这种方式也存在问题,如:不能方便的查看到任务的成功失败状态,任务的执行时长等信息。下面我介绍一种使用Azkaban来进行定时任务调度的方案。
1、Azkaban系统简介
azkaban是一个任务调度系统,当前我已经在用于emr计算任务的定时调度,emr集群的定时清理等任务处理中。整个azkaban系统包括web server和exec server两部分,web server提供了web页面访问,并能够前端页面上进行任务的创建,任务包的上传,任务执行调度,执行日志及状态查看,定时任务设置等操作。exec server是具体的执行服务器,接收web server下发的执行任务进行处理。
2、Azkaban用于调度定时任务的优点
由于azkaban系统能够支持包括hive任务,spark任务,命令行任务等多种任务。所以可以使用azkaban来进行日常定时任务的处理。其优势在于:
3、任务打包azkaban系统的任务包都以zip包的形式组织,我们的demo目录结构如下:
|-- azkaban_task_demo.project
|-- azkaban_task_demo.zip
|-- crontab_test.flow
|-- task
| -- test.sh
-- task_tools
|-- bin
|-- conf
-- lib
4、包上传及启动执行在azkaban的web界面,首先需要创建一个新的project
5、工作流定义
6、总结
上面介绍了使用azkaban来进行定时任务调度的实现方法,可以使得我们能从web界面便捷的看到我们定时任务的执行成功失败情况,也可以便捷的查看任务输出的日志信息,是一种管理定时任务的便捷方法。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。