AZKABAN(二)使用

1、启动azkaban

启动azkaban server。进入executor,执行:

bin/ azkaban-executor-start.sh

可以使用bin/azkaban-executor-shutdown.sh关闭

因为有日志输出建议使用nohup 执行

       启动azkaban web。进入web,执行:

              bin/azkaban-web-start.sh

              可以使用bin/ azkaban-web-shutdown.sh关闭

              建议使用nohup执行

       启动之后,使用https://ip:8443登录。

登陆界面

        强调一下使用https!!!!

       登录的用户名和密码就是azkaban-users.xml中默认的或配置的。 

2、azkaban使用

    2.1简单入门。

    登录azkaban后创建project。在本地建立xxx.job文件。例如test.job。编辑内容为:

    #test job

    type=command

    command=echo this is test!!!

    然后压缩成test.zip文件上传到azkaban。就可以看到:

任务上传

点击进去test可以选择执行。

2


任务配置列表


任务执行效果

3.2 azkaban job配置和依赖

假设azkaban的一个工程有五个job。

o2o_2_hive.job:将清洗完的数据入hive库

o2o_clean_data.job:调用mr清洗hdfs数据

o2o_up_2_hdfs.job:将文件上传至hdfs

o2o_get_file_ftp1.job:从ftp1获取日志

o2o_get_file_fip2.job:从ftp2获取日志

依赖关系: 3依赖4和5,2依赖3,1依赖2,4和5没有依赖关系。各个文件内容如下。

o2o_2_hive.job

type=command

# 执行sh脚本,建议这样做,后期只需维护脚本就行了,azkaban定义工作流程

command=sh /job/o2o_2_hive.sh

dependencies=o2o_clean_data #依赖通过 dependencies 来指定

o2o_clean_data.job

type=command

# 执行sh脚本,建议这样做,后期只需维护脚本就行了,azkaban定义工作流程

command=sh /job/o2o_clean_data.sh

dependencies=o2o_up_2_hdfs

o2o_up_2_hdfs.job

type=command

#需要配置好hadoop命令,建议编写到shell中,可以后期维护

command=hadoop fs -put /data/*

#多个依赖用逗号隔开

dependencies=o2o_get_file_ftp1,o2o_get_file_ftp2

o2o_get_file_ftp1.job

type=command

command=wget "ftp://file1" -O /data/file1

o2o_get_file_ftp2.job

type=command

command=wget "ftp:file2" -O /data/file2

那么将这五个文件打包到一个.zip上传到azkaban的一个工程中。结果如下:

任务列表

点击execute flow.

任务依赖关系

左边 flow view展示各个job与job之间关系。

Notification(通知):可以在这里设置邮件通知。

Failure Options:job执行失败之后怎么执行和处理的设置

Concurrent:job正确执行,怎么执行。例如设置一个job同一个时刻只能执行一份。

Flow parameters:定义job工作流中参数。

2

在左下角,Schedule可以设置定时任务。

定时任务

Time设置job执行时间。定时任务设置的日期。-07:00设置的是时间的校准以哪个为时间参考。选UTC就对了。

Recurrentce下repeat every表示任务失败重复执行。数字表示重复执行的次数。后面days表示定时任务是按天,月,年执行的跨度。

右下角为执行和取消。

备注:有时邮件发送不成功。原因是设置的时候使用了qq邮箱作为smtp服务器。但是qq,smtp默认是关闭的而且设置也麻烦的一笔。所以建议使用163 or其他。在job中也可以指定任务失败或成功,邮件的派送。如下:

邮箱配置

notify.emails 通知发送方。Failure.emails任务失败接收方。success.emails.任务成功接收方。

Plugins和exlib等几个文件夹不是必须需要文件的。启动时可以发行缺少triggers插件不影响。

配置完成后如果发行网页打开报错。恭喜!未知错误,爱莫能助。如果乱码,那么浏览器问题,打不开,你看看是不是用https://打开的。

对了还一个问题,有时你改了时区,其实你不一定改成功了。你使用jps指令看看启动的java任务。Azkaban的任务成功启动。如果时区不一致,任务启动会失败。

azkaban线程

其他问题,call me:[email protected]。以后陆续会更新微信公众号忘到时支持。之后陆续更新 源代码解读。

你可能感兴趣的:(AZKABAN(二)使用)