Azkaban动态修改作业属性

Aakaban动态修改作业属性

线上有个任务跑挂了

az0

Project有一个可以跑历史任务,但是默认的运行时间是:

1
2
beg=2016-6-1
end=2016-6-2

az1

一个Project中可以创建多个.job文件,比如上面的Project创建了4个.job文件。

如果要跑其他天的任务,可以在Job属性中修改,不过前提是这个任务必须跑过一次后才可以修改,由于之前都没跑过,所以手动执行一次任务。

az2

修改Job的参数的路径:点击上面的ExecutorID》进入到任务的详细页面,再点击Detail

az3

从日志中可以看到参数是2016-6-1和2016-6-2,点击右上角的Job Properties

az5

可以修改beg和end参数,然后保存。

az6

最后回到任务页面,手动执行(前一个任务必须执行完,或者Kill掉,不允许暂停)。

az7

再看任务的日志,可以看到参数变成了2016-10-8和2016-10-8,现在就可以重跑线上挂掉的那天的任务了。

az9

附上azkaban的.job文件:

1
2
3
4
type=command
beg=2016-6-1
end=2016-6-2
command=sh cross-partner-range.sh ${beg} ${end}

这里只有定义了beg和end参数,才可以在Job Properties中修改,如果说脚本是写死的比如:

1
2
type=command
command=sh cross-partner-range.sh 2016-6-1 2016-6-2

那么就没办法做到动态修改作业的属性了,这样就只能重新创建一个.job文件,然后上传,执行。

再附上生成azkaban的zip包的方式:

1
2
3
4
5
6
7
8
9
10
11
cd ~/IdeaProjects/tongdun/vulcan/cross-partner
mvn clean package

azkabanProject=cross-partner
rm -rf ~/Downloads/$azkabanProject
rm ~/Downloads/$azkabanProject.zip
mkdir ~/Downloads/$azkabanProject

cp target/cross-partner-1.0.0-SNAPSHOT-jar-with-dependencies.jar ~/Downloads/$azkabanProject/
cp azkaban/* ~/Downloads/$azkabanProject/
zip -r ~/Downloads/$azkabanProject.zip ~/Downloads/$azkabanProject

SLA报警

1

最小的单位是分钟,比如5:00表示5个小时。

2

设置SLA

1
curl -k -d "ajax=setSla&scheduleId=1&slaEmails=a@example.com;b@example.com&settings[0]=aaa,SUCCESS,5:00,true,false&settings[1]=bbb,SUCCESS,10:00,false,true" -b "azkaban.browser.session.id=XXXXXXXXXXXXXX" "http://localhost:8081/schedule"

获取SLA

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
{
"settings" : [ {
"duration" : "300m",
"rule" : "SUCCESS",
"id" : "aaa",
"actions" : [ "EMAIL" ]
}, {
"duration" : "600m",
"rule" : "SUCCESS",
"id" : "bbb",
"actions" : [ "KILL" ]
} ],
"slaEmails" : [ "a@example.com", "b@example.com" ],
"allJobNames" : [ "aaa", "ccc", "bbb", "start", "end" ]
}

文章目录
  1. 1. SLA报警