此文章主要向大家演示在大数据项目中使用Azkaban作为任务调度器的时候,当任务发生错误和失败,又或者任务执行成功时怎么部署实现Azkaban自动发送邮件通知项目负责人,在这篇文章中我将126邮箱交给Azkaban使用,作为自动报警机制的发件人,而使用qq邮箱作为项目执行者接收Azkaban的报警信息。
接下来,我将为大家一步一步的讲解,如果对您有用,感谢一键三连。
由于我们需要将发件人邮箱交给azkaban这个第三方平台进行使用,因此我们需要将126邮箱的SMTP设置为开启状态,且保存它给出的授权码,这个授权码我们将会配置到azkaban-web的azkaban.properties文件中,作为Azkaban使用邮箱的认证信息。
打开126邮箱
打开设置,点击SMTP
将POP3/SMTP服务设置为开启状态
1 .点击设置开启
2 .手机扫码,使用注册邮箱的手机号发送短信
3 .获得授权码
注意:
一定要将授权码进行保存,不然后面又要重新操作一次,此授权码在配置azkaban-web中需要使用,不然无法实现azkaban邮件报警功能
配置Azkaban发送邮件报警功能
修改/azkaban/azkaban-web/conf目录下的azkaban.properties文件,配置邮件发送机制 ,mail.sender和mail.host在文件中已有,我们还需要在文件中添加mail.user= 和 mail.password=
mail.sender=xuxiang_ethan@126.com
mail.host=smtp.126.com
mail.user=xuxiang_ethan@126.com
mail.password=此处填写邮箱授权码
注意: sender为发件人邮箱,host为邮箱smtp的服务器地址,其中user为发送者邮箱地址,password为前面开启SMTP时的授权码
退出并保存azkaban.properties文件,启动Azkaban-exec,激活Azkaban-exec,且启动Azkaban-web,如果已经启动了Azkaban-exec的只需要重新启动Azkaban-web即可
需求:
JobA执行shell脚本JobA.sh
JobB执行shell脚本JobB.sh
JobC执行shell脚本JobC.sh
1.在windows本地编写三个shell脚本如下
#! /bin/bash
echo "I am JobA"
#! /bin/bash
echo "I am JobB"
#! /bin/bash
echo "I am dependence JobA and JobB"
编写mail.project文件
azkaban-flow-version: 2.0
nodes:
- name: JobA
type: command
config:
command: sh JobA.sh
- name: JobB
type: command
config:
command: sh JobB.sh
- name: JobC
type: command
dependsOn:
- JobA
- JobB
config:
command: sh JobC.sh
演示Azkaban任务发生错误时报警
说明任务发生错误
至此,Azkaban的报警的整个部署流程就弄好了,任务执行成功的话同样的操作,只需要Job任务以及所需要的shell文件都正确即可!!
若有写得不明之处还望海涵。感谢关注,感谢点赞