大数据作业调度平台
任务调度原理与规则
任务
任务是我们通常想要执行的一系列程序指令的集合
任务调度
将编写好的任务按照用户期望的时间,预定的需求进行执行。
任务调度规则
不同的任务调度工具规则不同,例如Azkaban是批量工作流任务调度,Quartz是同步/异步任务调度
任务调度需要解决的问题
- 采用程序来执行,可减少认为的误操作,以免带来不必要的麻烦
- 解放员工,提高工作效率
- 某些需求程序比人力更合适,例如每天两天凌晨两点执行数据同步
- 可追溯,异常及时通知等等
常见的几种任务调度工具
Hamake
Hadoop Make Utility,更新独立数据集的作业可以并发执行,利用Hadoop集群的全部容量。依赖关系图可能包括循环,导致依赖关系循环,可以使用数据集版本控制来解决。
Oozie
基于工作流引擎的开源框架,是用于Hadoop平台的开源的工作流调度引擎,是用来管理Hadoop作业,属于web应用程序,由Oozie clinet和Oozie Server两个组件构成,Oozie Server两个组件构成。Oozie Serve运行于Tomcat中的web程序。
Azkaban
例Azkaban是批量工作流任务调度,主要用于在一个工作流内以一个特定的顺序运行一组工作和流程。Azkaban使用job配置文件建立人物之间的依赖关系,并提供一个易于使用的web用户界面维护和跟踪工作流。
Cascading
Cascading是一个数据处理的API和查询处理计划,用于定义,共享数据处理工作流,还能在单一计算节点或分布式计算集群上执行数据处理工作流。
Azkaban工具介绍
架构:
ExecutorServer可能是个集群
DB是集群中所有节点运行共用用的数据存储,包含作业信息、各种调度元数据等。
Developer提交工作流
工作流也可以嵌入到工作流中
组件介绍:
Azkaban WebServer
Azkaban WebServer是整个调度集群的核心,负责所有作业的管理和调度。
Azkaban ExecutorServer
Azkaban ExecutorServer,整个调度集群中实际运行作业的节点