离线数据开发之任务调度系统

大数据调度系统的由来
1)大数据下,调度系统时整个大数据体系的指挥中心,负责合理的调配资源。

2)在调度系统中各类任务互相依赖,形成一个有向无环图。

3)传统的数据仓库是依靠定时任务的方式进行调度,这种方式存在几个缺点:

① 任务调度依据时间,造成前一个任务未完成而后面的任务已经开始

② 任务难以并发,难以设置优先级

③ 任务管理维护比方便

4)大数据下数据量巨大,同时任务种类繁多,如MapReduce,hive,spark等,为了解决以上问题,大数据任务调度系统应运而生

调度系统设计模型
1)调度系统的构成:
离线数据开发之任务调度系统_第1张图片
2)调度系统的重要概念:

① 任务状态机模型:描述任务节点在生命周期中的状态
离线数据开发之任务调度系统_第2张图片
② 工作流状态机模型:描述任务节点在由调度树生成的工作流在运行时的不同状态
离线数据开发之任务调度系统_第3张图片
3)调度引擎的工作原理

基于任务状态机模型、工作流状态机模型,以事件驱动的方式运行,为任务节点生成实例,并在调度树中生成工作流。任务节点示实例在工作流状态机、工作流状态机和事件处理器之间转换。重要组件如下:

① Async Dispatcher:异步处理任务调度

② Sync Dispatcher:同步处理任务调度

③ Task 事件处理器:与任务状态机交互

④ DAG 事件处理器:与工作流状态机交互

离线数据开发之任务调度系统_第4张图片
4)执行引擎的工作原理

由三部分组成,服务接口、服务实现、task

① 服务接口:

  • 任务管理接口:进行集群任务管理

  • 系统管理接口:进行集群资源管理

② 服务实现:

  • Driver:

离线数据开发之任务调度系统_第5张图片

  • Task pool:

  • 离线数据开发之任务调度系统_第6张图片

    • ResourceManager:整个集群的资源管理
  • TaskContainer:为Task执行提供载体

  • 离线数据开发之任务调度系统_第7张图片

    • session manager:实现对task session 的管理
  • node:集群中的节点,提供物理资源

③ task

批处理任务或者流处理任务会提交给对应的平台进行处理,其他如shell、数据同步等任务会在调度系统中直接执行

你可能感兴趣的:(大数据)