前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Azkaban 任务调度系统(使用和小技巧)

Azkaban 任务调度系统(使用和小技巧)

作者头像
喵了个咪233
发布2022-03-24 10:50:54
1K0
发布2022-03-24 10:50:54
举报

上节主要介绍了安装搭建和简单的运行一个job,但是真正使用到实际场景还是需要了解更多的知识,比如任务怎么互相依赖,可以选择指定的节点来执行吗等等一些相关的操作会在本节中进行介绍

附上:

喵了个咪的博客:w-blog.cn

Azkaban官网: https://azkaban.github.io

官方文档地址: http://azkaban.github.io/azkaban/docs/latest

一 ,任务依赖

之前说的都是部署方式和一个简单的运行例子,那么像开头说的如果任务直接有依赖关系咋办呢? 那就需要用到 dependencies 关键字了

代码语言:javascript
复制
> mkdir azkaban_job
> vim azkaban_job/one.job
type=command
command=echo "this is job one"

> vim azkaban_job/tow.job
type=command
dependencies=one
command=echo "this is job two"

zip -r azkaban_job.zip azkaban_job/

二 ,指定exec运行对应的任务

笔者遇到了难题,现在Azkaban管着3个exec,其中2个是hadoop的一个是docker相关的,但是Azkaban选择执行任务的节点是更具节点的资源来调度的,那么就会出现跑docker相关的命令会跑到hadoop的服务器上,hadoop的命令会跑到docker服务器上,那么有没有办法指定任务执行的环境呢?

首先找到对应的ID

在运行任务的时候添加一个变量

PS:局限虽然可以指定在一台节点上执行,但是失去了高可用的优势,如果有不同类型的任务建议用多套azkaban

三 , 参数传递

当我在编写程序的时候常常会用到变量来去传递使用,使用变量的好处在于程序会应该不同的变量完成不同的事情,那么对于任务来说也是同样一个道理,比如我传递的数据库的链接地址的不同就决定了从哪个数据库获取源数据,为了程序的泛用性变量是不可缺少的,azkaban在job文件中也可以指定变量来接受每一次执行时不同的参数

azkaban变量替换格式是<${name}>,上传下面测试job文件

代码语言:javascript
复制
#command.job
type=command
command=echo 'hello ${name}!'

在运行前配置好要替换 &{name} 参数的具体的值

最终在执行下来就可以看到参数已经被替换了

四 , 邮件配置

应为任务是异步定时的,我们对于结果的感知往往没有手动跑脚本那么及时,但是如果任何一个任务运行失败可能都会引起一些列问题,在这个情况下消息通知就很重要了,azkaban支持邮件通知任务执行情况

首先要确保在编译的时候有按照本文搭建所示修改过azkaban-common/src/main/java/azkaban/utils/EmailMessage.java文件增加了下面这行代码

代码语言:javascript
复制
props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");

邮件配置只需要配置到azkaban.properties就可以了

代码语言:javascript
复制
> vim /usr/local/azkaban-web-server/conf/azkaban.properties

mail.sender= @qq.com
mail.user= 
mail.host=smtp.qq.com
mail.password= 
mail.tls=true
mail.port=465

在执行任务前配置成功失败的收件人

当任务执行完成就会收到如下邮件

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018/07/30 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一 ,任务依赖
  • 二 ,指定exec运行对应的任务
  • 三 , 参数传递
  • 四 , 邮件配置
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档