Airflow调度 Design
一、创建DAGS
从Oracle里的原始数据导入hive里的ods层,再从ods层进行数据清洗到dwd层
在airflow路径下创建dags文件夹,创建如下四个python脚本:
分别为
- 在hive创建ods层和dwd层的全量表
- 在hive创建ods层和dwd层的增量表
- 全量表从原始数据到ods再到dwd层
- 增量表从原始数据到ods再到dwd层 的四个DAGS
其中建表的DAGS脚本解析如下:
---------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------
增量sqoop导入ods到数据清洗到dwd层脚本解析如下
二、将之前写好测试过的建ods层表和dwd层表脚本和sqoop导入脚本以及清洗脚本(一共8个)放进指定目录(及python脚本种bash_command后面的路径),如下图所示:
三、如下命令启动airflow webserver和调度器:
airflow webserve -D
airflow scheduler
浏览器(端口号设置8080)打开ui界面,此时DAGS创建成功后可以在airflow的UI界面看到如下DAGS
开启DAGS运行按钮,airflow调度任务开始执行,点击DAG任务可在Tree查看任务结构和任务执行进度,以下是创建增量表的DAG,建表是不需要周期执行:
两个任务已经success,建表完成,可以看到表已经创建好了
开启DAGS运行按钮,airflow调度任务开始执行,点击DAG任务可在Tree查看任务结构和任务执行进度,以下是增量导入ods到dwd的任务,已经显示今天调度完成(设置调度周期为一天)每天执行一次
在如下界面也可以查看任务详情:
查看log,观察任务执行效果:
可以查看到任务完成,调度记录两条
然后可以在hdfs上查看到导入的增量表(自动创建分区):以下是可以查看到ods层和dwd层已经成功导入数据:
三、测试调度是按照指定周期自动调度:
将调度周期改成400秒,测试调度是否能周期性启动:
UI界面可以查看到400秒后任务开始第二次启动:
经过运行一段时间后,看到界面已经调度两次success,因此测试400秒周期性调度第二次自动调度成功:如下图:
过了一段时间查看已经调度五次成功: