1.前言
任务调度系统在大数据平台架构中扮演着比较重要的角色。下图是引自网易的猛犸大数据平台lambda架构图。
其中的Azkaban就是其任务调度组件。概括来说,任务调度在大数据平台中所扮演的角色主要有:
-
任务编排:对任务流按照一定的逻辑串起来。这在大数据开发中,显得比较重要,对于一个工作任务,可能有不同的子任务串起来的,并且有些子任务是并行执行的。举个例子,在做一个机器学习的模型时,可能第一步就是数据清洗,然后是提取特征,接着才是模型预测。然后提取特征的过程中,可能要分为提取属性特征和行为特征。那么这里用拓扑图可以表示为如下图:
-
任务调度执行:任务调度组件的核心使命肯定是让离线任务按照我们既定的执行计划去周期调度地执行。那么任务调度系统就需要能够按照任务的调度计划去自动执行任务。
-
运维功能:作为一个系统肯定要有健全的运维功能,比如说提供任务运行报表功能,调度日志等等。类似于下图: