Oozie基于Hue全流程调度

您所在的位置:网站首页 oozie界面 Oozie基于Hue全流程调度

Oozie基于Hue全流程调度

2024-07-08 17:42| 来源: 网络整理| 查看: 265

使用任务调度框架Oozie调度业务数仓全流程。

 

目录

准备

创建工作流

定时调度

Bundle

准备 1. 数仓流程说明

业务数仓整个流程大致分为六个阶段,每个阶段都依赖于上阶段的计算结果,所以必须要上阶段执行完成再执行下一阶段:

大致流程: MySQL -> HDFS -> ODS -> DWD -> DWS -> ADS -> MySQL 具体流程: 1. MySQL业务通过Sqoop数据导入HDFS 2. 将HDFS数据导入Hive数仓ODS层 3. 将ODS数据简单清洗写入DWD层 4. 将DWD数据轻度汇总写入DWS层宽表 5. 将DWS层数据统计结果写入ADS层 6. 将ADS层数据通过Sqoop导出到MySQL汇总表 2. 脚本

提前已经把各部分任务写成shell脚本。

对应流程: sqoop_import -> ods_db -> dwd_db -> dws_db -> ads_db -> sqoop_export

上传shell脚本到HDFS,自己指定位置即可

sudo -uhdfs hadoop fs -put /bin/oozie/* /user/bin/oozie/ 3. JDBC 因为调度中需要使用sqoop导入导出MySQL,所以先将MySQL驱动mysql-connector-java-5.1.47.jar复制到hadoop、sqoop、 以及Oozie的HDFS目录下sqoop中,lib_20181213173721,这个是Oozie搭建时生成,各不相同 cp jdbc.jar /opt/cloudera/parcels/CDH/lib/hadoop/lib cp jdbc.jar /opt/cloudera/parcels/CDH/lib/sqoop/lib sudo -uhdfs hadoop fs -put jdbc.jar /user/oozie/share/lib/lib_20181213173721/sqoop   创建工作流 1. 创建工作流

2. 编辑工作流

选择Action操作,修改好调度任务名和描述。大多数情况下,我们会把要执行的任务写成脚本执行。这里就选择shell,直接把要执行的任务类型拖拽到下面指定的区域。

3. 上传脚本

从第一步开始,sqoop_import.sh

4. 添加文件

就是刚才选择的脚本

5. 填写参数

脚本里需要的参数,尽量设置为动态自动获取,如 ${date}

第一步的参数是所有文件和当天日期,后面的只需要日期,最后一步是导出所有结果,相应填入

6. 依次添加后续任务

添加文件和设置相应参数

7. 保存,或者运行

8. 状态提示

运行后会有状态提示页面,可以看到任务进度

9. 其他

查看已经存在的调度任务

点击调度任务的页面情况

定时调度 1. 创建定时计划(schedule)

2. 修改属性

修改定时任务名和描述

3. 添加任务

添加需要定时调度的任务

4. 设置调度时间

5. Crontab高级语法模式

6. 参数设置

sm-workflow的参数都是写死的,没有设置动态,这里的下拉列表就不会有可选项。

设置参数

将sm-workflow的日期修改为 ${do_date},保存

进入定时计划sm-dw中,会看到有参数 do_date

填入相应参数,前一天日期

${coord:formatTime(coord:dateOffset(coord:nominalTime(), -1, ‘DAY’), ‘yyyyMMdd’)}

Oozie常用系统常量

 

当然,也可以通过这样将参数传入workflow任务中,代码或者shell中需要的参数。

如,修改sm-workflow 中的 sqoop_import.sh,添加一个参数 ${num}。

编辑文件(需要登陆Hue的用户有对HDFS操作的权限),修改shell中的一个值为参数,保存。

在workflow中,编辑添加参数 ${num} ,或者num=${num} 保存。

进入schedule中,可以看到添加的参数,编辑输入相应参数即可。

 

Bundle

Bundle统一管理所有定时调度,阶段划分:Bundle > Schedule > workflow



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3