Azkaban工作流调度器(二)执行python工作流

1.job 创建

假设有这么一种场景:
(1).task1 依赖 task2
(2).task2 依赖 task3
(3).task3 依赖 task4
说明:假设task1是一个计算指标任务,task2 给 task1 提供执行需要的基础数据
task3 给 task2 提供数据,以此类推。

2.flow 创建

多个jobs和它们的依赖组成flow。怎么创建依赖,只要指定dependencies参数就行了
定义4个job:
(1).run_task1.job:计算业务指标数据
(2).run_task2.job:计算task1所需要的数据
(3).run_task3.job:计算task2所需要的数据
(4).run_task4.job:从 slaves 中抽取源数据

依赖关系:
task1 依赖 task2,task2 依赖 task3,task3 依赖 task4

4个job文件内容如下(这里以执行python为例,这个比较popular哈)

# run_task1.job
type = command
command = python /root/azkaban-task/run_task1.py
dependencies = run_task2
# run_task2.job
type = command
command = python /root/azkaban-task/run_task2.py
dependencies = run_task3
# run_task3.job
type = command
command = python /root/azkaban-task/run_task3.py
dependencies = run_task4
# run_task4.job
type = command
command = python /root/azkaban-task/run_task4.py

创建python脚本

cd /root/azkaban-task/
[hadoop@master azkaban-task]$ touch run_task1.py
[hadoop@master azkaban-task]$ touch run_task2.py
[hadoop@master azkaban-task]$ touch run_task3.py
[hadoop@master azkaban-task]$ touch run_task4.py

4个文件内容如下,笔者只写了一句打印,这里根据公司你的业务写代码即可。
run_task1.py

#!/usr/bin/python3
print("task1:计算业务指标数据...")

run_task2.py

#!/usr/bin/python3
print("task2:计算基础数据,为task1提供数据")

run_task3.py

#!/usr/bin/python3
print("task3:数据清洗,为task2提供数据")

run_task4.py

#!/usr/bin/python3
print("task4:从Slaves中抽取源数据")
3.将上述 job 打成zip包,上传至 azkaban

在这里插入图片描述

4.执行,观看日志打印即可。

在这里插入图片描述


加微请备注:来自优快云 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200523173702989.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L29ZdVpob25nTWFuQnUxMjM0,size_16,color_FFFFFF,t_70#pic_center)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值