文档章节

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

喵了_个咪
 喵了_个咪
发布于 07/30 09:18
字数 887
阅读 339
收藏 2

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

附上:

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

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

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

一 ,任务依赖

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

> 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文件

#command.job
type=command
command=echo 'hello ${name}!'

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

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

四 , 邮件配置

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

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

props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");

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

> 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

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

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

© 著作权归作者所有

共有 人打赏支持
喵了_个咪
粉丝 262
博文 144
码字总数 185422
作品 4
杨浦
技术主管
Hadoop平台调度系统

1.概述   在Hadoop应用,随着业务指标的迭代,而使其日趋复杂化的时候,管理Hadoop的相关应用会变成一件头疼的事情,如:作业的依赖调度,任务的运行情况的监控,异常问题的排查等,这些问...

jackwxh
2017/03/03
0
0
Azkaban 任务调度系统(安装搭建)

无论是在业务开发还是在大数据开发中,脚本都是必不可少的存在,在初期我们会使用crontab来解决问题,那么当发现规模变大监控需求可视化需求的到来Crontab已经显然满足不了需求,抱着一颗解决大数...

喵了_个咪
07/26
0
0
强子哥哥/MyAzkaban

#MyAzkaban Azkaban是由Linkedin开源的一个批量工作流任务调度器,用于在一个工作流内以一个特定的顺序运行一组工作和流程。 Azkaban定义了一种KV文件格式来建立任务之间的依赖关系,并提供一...

强子哥哥
2016/04/15
0
0
我的第2个开源项目:MyAzkaban-3.0.0

网址: http://git.oschina.net/qiangzigege/MyAzkaban http://azkaban.github.io/azkaban/docs/latest 官方例子: https://github.com/joeharris76/azkabanexamples 为什么要做这个东西? ......

强子哥哥
2016/04/14
888
0
Azkaban 工作流调度器

1、Azkaban是什么 我们在工作中应该都遇到过这样的场景:有一个任务,这个任务可以划分成多个较小的任务完成,之所以进行划分是因为小任务之间可以并发的进行,例如是一个shell脚本执行的命令...

张欢19933
2016/11/23
63
0

没有更多内容

加载失败,请刷新页面

加载更多

sqlserver 2008 r2 直接下载地址(百度云)

之前下载的sqlserver2008发现不能附加,就卸载了,重新找到了sqlserver2008R2的百度云资源 卸载sqlserver2008还是有点麻烦,不过就是需要删除注册表中的信息 自己来回卸载了3次终于重装sqlse...

dillonxiao
34分钟前
1
0
[Java]JVM调优总结 -Xms -Xmx -Xmn -Xss

JVM调优总结 -Xms -Xmx -Xmn -Xss 博客分类: Java General JVM应用服务器电信CMS算法 堆大小设置 JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可...

morpheusWB
45分钟前
1
0
C++ std::function 和 std::bind

C++11提供了std::function和std::bind两个工具,用于引用可调用对象。这些可调用对象包括 普通函数,Lambda表达式,类的静态成员函数,非静态成员函数以及仿函数等。引用可调用对象,可以用于...

yepanl
今天
2
0
python:可迭代对象的索引

关于 python的range的用法: 注意是[ 开始,结束)的半开区间,不包括结束 http://www.runoob.com/python/python-func-range.html import collectionsfrom collections import Iterable字符串......

Oh_really
今天
3
0
docker-compose ,docker-stack

1.例子 version: "3"services: php: image: registry.cn-hangzhou.aliyuncs.com/lxepoo/apache-php5 ports: - "38080:80" networks: - my_php_mysql volum......

chenbaojun
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部