数据仓库之任务调度。

概述

随着数据仓库的开发,ETL作业会越来越多,怎么把这些作业有序的运行起来,就需要一个健壮的调度系统来保证数据能够准确、及时的提供给BI应用程序。

调度系统架构

  • ETL作业

数据仓库的ETL作业可能不至一种,需要把各种作业再次进行封装,建立作业的标准格式,统一作业的输入参数、输出参数和参数格式,达到所有的作业调度方式一致。

  • 作业管理

提供便捷的作业配置和依赖关系配置页面。

  • 作业调度

根据作业调度算法进行自动执行,如果发生异常情况可以进行人工重启和停止。

  • 作业监控

对作业运行情况进行监控,发送邮件或者提供监控页面

常用的调度组件

组件名 属性标签 特性 使用场景
azkaban 调度工具 处理有依赖关系的复杂任务调度,只支持mysql存储基本信息 常用调度工具之一
crontab linux自带调度工具 简单任务调度 适用日常少量调度
ooize 调度工具 处理复杂任务调度,但好像并不好用 大数据领域调度工具之一(Oozie, Azkaban,Cascading,Hamake)

作业调度状态

  1. 初始化:把新添加的作业加入到执行计划中。

  2. 待运行:根据时间和依赖关系把可执行的任务更新为待运行。

  3. 运行中:把待运行的任务执行,更新为运行中。

  4. 结束:作业运行完成,分为成功和失败。

评论