Oozie基于Hue全流程调度 |
您所在的位置:网站首页 › oozie界面 › Oozie基于Hue全流程调度 |
使用任务调度框架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脚本。 上传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. 创建工作流选择Action操作,修改好调度任务名和描述。大多数情况下,我们会把要执行的任务写成脚本执行。这里就选择shell,直接把要执行的任务类型拖拽到下面指定的区域。 从第一步开始,sqoop_import.sh 就是刚才选择的脚本 脚本里需要的参数,尽量设置为动态自动获取,如 ${date} 第一步的参数是所有文件和当天日期,后面的只需要日期,最后一步是导出所有结果,相应填入 添加文件和设置相应参数 运行后会有状态提示页面,可以看到任务进度 查看已经存在的调度任务 点击调度任务的页面情况 ![]() 修改定时任务名和描述 添加需要定时调度的任务 ![]() 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 |