当前位置:网站首页>数据仓库调度工具Azkaban的使用(二)
数据仓库调度工具Azkaban的使用(二)
2022-08-07 20:54:00 【大数据小理】
数据仓库调度工具Azkaban的使用(二)
3.2 条件工作流案例
条件工作流功能允许用户自定义执行条件来决定是否运行某些Job。条件可以由当前Job
的父 Job 输出的运行时参数构成,也可以使用预定义宏。在这些条件下,用户可以在确定 Job执行逻辑时获得更大的灵活性,例如,只要父 Job 之一成功,就可以运行当前 Job。
3.2.1 运行时参数案例
1)基本原理
(1)父 Job 将参数写入 JOB_OUTPUT_PROP_FILE 环境变量所指向的文件
(2)子 Job 使用 KaTeX parse error: Expected 'EOF', got '&' at position 110: … (6)<= 小于等于 (7)&̲& 与 (8)|| 或 (9)…wk}" > $JOB_OUTPUT_PROP_FILE
(2)新建 JobB.sh
#!/bin/bash
echo “do JobB”
(3)新建 condition.flow
nodes:
- name: JobA
type: command
config:
command: sh JobA.sh - name: JobB
type: command
dependsOn: - JobA
config:
command: sh JobB.sh
condition: ${JobA:wk} == 1
(4)将 JobA.sh、JobB.sh、condition.flow 和 azkaban.project 打包成 condition.zip
(5)创建 condition 项目=》上传 condition.zip 文件=》执行作业=》观察结果
(6)按照我们设定的条件,JobB 会根据当日日期决定是否执行。
3.2.2 预定义宏案例
Azkaban 中预置了几个特殊的判断条件,称为预定义宏。
预定义宏会根据所有父 Job 的完成情况进行判断,再决定是否执行。可用的预定义宏如
下:
(1)all_success: 表示父 Job 全部成功才执行(默认)
(2)all_done:表示父 Job 全部完成才执行
(3)all_failed:表示父 Job 全部失败才执行
(4)one_success:表示父 Job 至少一个成功才执行
(5)one_failed:表示父 Job 至少一个失败才执行
1)案例
需求:
JobA 执行一个 shell 脚本
JobB 执行一个 shell 脚本
JobC 执行一个 shell 脚本,要求 JobA、JobB 中有一个成功即可执行
(1)新建 JobA.sh
#!/bin/bash
echo “do JobA”
(2)新建 JobC.sh
#!/bin/bash
echo “do JobC”
(3)新建 macro.flow
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
condition: one_success
(4)JobA.sh、JobC.sh、macro.flow、azkaban.project 文件,打包成 macro.zip。
注意:没有 JobB.sh。
(5)创建 macro 项目=》上传 macro.zip 文件=》执行作业=》观察结果

3.3 定时执行案例
需求:JobA 每间隔 1 分钟执行一次;
具体步骤:
1)Azkaban 可以定时执行工作流。在执行工作流时候,选择左下角 Schedule
2)右上角注意时区是上海,然后在左面填写具体执行事件,填写的方法和 crontab 配置定时任务规则一致


报警


下面是在azkaban中配置短信报警
在 azkaban-web 节 点 hadoop102 上 , 编 辑
/opt/module/azkaban/azkabanweb/conf/azkaban.properties,
修改如下内容
[email protected]
mail.host=smtp.qq.com
[email protected]
mail.password=密钥
通过 [email protected] ,该邮箱网址复制到azkaban的正确失败发送邮箱地址中
即可实现qq邮件告警集成
下面是在azkaban中配置电话报警,必须是126邮箱
在 azkaban-web 节 点 hadoop102 上 , 编 辑
/opt/module/azkaban/azkabanweb/conf/azkaban.properties,
修改如下内容
[email protected]
mail.host=smtp.126.com
[email protected]
mail.password=密钥
通过 [email protected] 邮箱,该邮箱网址复制到azkaban的正确失败发送邮箱地址中
即可实现电话告警集成,
将该邮箱作为到IT监控系统的提醒通知邮箱,即可实现告警集成
因个人隐私,密钥等不便展示。
边栏推荐
猜你喜欢

多模态预训练技术的探索和实践

Mysql 45讲学习笔记(二十八)读写分离

Win7打开word提示“无法打开文件Normal因为内容有错误”怎么办

Apache Hudi vs Delta Lake:透明TPC-DS Lakehouse性能基准

台式机电脑电源的使用
[C# language] DataGridView sorting and filtering

比XShell更好用、更现代的终端工具!

How to check your broadband account and password How to check your broadband account and password

怎么查询宽带账号密码 如何查宽带账号和密码

database connection pool
随机推荐
无线蓝牙耳机如何连接电脑 无线蓝牙耳机能连电脑吗
快排之三路快排
General handler ashx access to WeChat server configuration
Leetcode 剑指 Offer 21. 调整数组顺序使奇数位于偶数前面
mongoDB database
OpenCV 画点 画线 画框 写字操作
Which platform is the best and safest to buy intra-market funds?
《微信小程序-进阶篇》Lin-ui组件库源码分析-动画组件Transition(二)
章节小测
Pytest学习-日志模块
How to install dual system on Apple computer
Use phpstudy (small skin panel) to configure the record of the local PHP development environment
Apache Hudi vs Delta Lake:透明TPC-DS Lakehouse性能基准
Aptos合约开发实践(一)-hello,Aptos!
AAAI2020】阿里DMR:融合Matching思想的深度排序模型
Leetcode 剑指 Offer 20. 表示数值的字符串
可信认证之九阴真经二
webstrom 插件开发(二)
Unity hot update Addressables to modify the resource cache path (download path)
How to use the keyboard to control the computer without a mouse How to use the keyboard instead of the mouse to move