azkaban任务调度系统部分功能介绍(使⽤篇)这篇⽂章主要针对azkaban最新版本(3.35.0)的⼀些常⽤功能做⼀些介绍 1.azkaban的command执⾏模式参数传递 #A.job
dateparam=2017-09-09
type=command
command=echo "This A job,current date is:"${dateparam}
command.1= sleep 1
azkaban运⾏job A时,${dateparam}参数从上⾯定义的dateparam变量中获取
1.2 管控台界⾯执⾏时传参:
泥土样本#B.job
type=command
command=echo "This B job,runing param:"${testparam}
command.1= sleep 2
爬墙式
job B在执⾏的时候需要⽤到${testparam}这个参数,该参数并未指定,需要在执⾏对应flow的时候动态传递
注意:若.job⽂件中有定义参数,运⾏时界⾯上也有传递相同的参数,则对应job会取.job⽂件中定义的参数,因为运⾏时界⾯上传递的是flow param相当于全局变量,⽽.job⽂件中定义的参数是针对具体job⽣效的,相当于局部变量 2.断点续跑功能
柴油机启动器
数据存储安全检测其实并没有端点续跑这个专有名词,这是我们⾃⼰的说法
在flow C中,job B想要正确运⾏的话是需要接受运⾏时参数${testparam}的
吊炕
⾸先不传递参数,直接执⾏,报错相信信息如下
因为job A已经成功执⾏,job B因为没有接收到参数${testparam}⽽执⾏失败。job C依赖于job B,因为job B的执⾏失败⽽被取消执⾏,在很多场景下,我们可能会想要重新执⾏这个flow中失败的job(即我们所说的端点续跑),azkaban就有提供这个功能,点击History列表中对应的Execution Id,进⼊执⾏流程图详情页 点击Prepare Execution,可以看到这时候job A是处于Disable状态的
制吴茱萸这时候添加job B所需要的参数,继续执⾏
再从History列表中进⼊详情查看,发现azkaban已经将刚才执⾏失败的job重新执⾏了⼀遍:
当然重新执⾏的,也可以将job A的属性设为Enable,重新执⾏该flow中的所有job
3.指定某个flow由某台executor主机执⾏
该功能仅对管理员⽤户⽣效
因为我在服务器159和160都部署了executor主机,所以根据job执⾏的⼯作⽬录可以看出来useExecutor参数是否有⽣效
在数据库中配置了两台executor主机
executorId=1的时候对应的是159,159中executor项⽬部署在source_buit⽬录下
执⾏⽇志如下: