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.执行,观看日志打印即可。
![]() | ![]() |