大数据调度平台分类大对比 (Oozie/Azkaban/AirFlow/XXL-Job/DolphinScheduler)
大数据调度系统,是整个离线批处理任务和准实时计算计算任务的驱动器。这里我把几个常见的调度系统做了一下分类总结,结合目前阿里云上的MaxCompute中的调度系统,做个对比。
Oozie
Oozie是一个workflow(工作流)协调系统,是由Cloudera公司贡献给Apache的,主要用来管理Hadoop作业(job)。
类型支持
统一调度hadoop系统中常见的mr任务启动、Java MR、Streaming MR、Pig、Hive、Sqoop、Spark、Shell等。
可视化流程定义
配置相关的调度任务复杂,依赖关系、时间触发、事件触发使用xml语言进行表达。
任务监控
任务状态、任务类型、任务运行机器、创建时间、启动时间、完成时间等。
暂停/恢复/补数
支持启动/停止/暂停/恢复/重新运行:支持启动/停止/暂停/恢复/重新运行。
其他
可以通过DB支持HA(高可用)。调度任务时可能出现死锁,依赖当前集群版本,如更新最新版,易于现阶段集群不兼容。
AirFlow
Airflow 是 Airbnb 开源的一个用 Python 编写的调度工具。于 2014 年启动,2015 年春季开源,2016 年加入 Apache 软件基金会的孵化计划。Airflow 通过 DAG 也即是有向非循环图来定义整个工作流,因而具有非常强大的表达能力。
类型支持
支持Python、Bash、HTTP、Mysql等,支持Operator的自定义扩展。
可视化流程定义
需要使用Python代码来定义流程。
任务监控
不直观。
暂停/恢复/补数
杀掉任务,重启。
其他
任务过多会卡死。
DolphinScheduler
DolphinScheduler是今年(2019年)中国易观公司开源的一个调度系统,在今年美国时间2019年8月29号,易观开源的分布式任务调度引擎DolphinScheduler(原EasyScheduler)正式通过顶级开源组织Apache基金会的投票决议,根据Apache基金会邮件列表显示,在包含11个约束性投票(binding votes)和2个无约束性投票(non-binding votes)的投票全部持赞同意见,无弃权票和反对票,投票顺利通过,这样便以全票通过的优秀表现正式成为了Apache孵化器项目。
Apache DolphinScheduler是一个分布式、去中心化、易扩展的可视化DAG工作流任务调度系统,其致力于解决数据处理流程中错综复杂的依赖关系,使调度系统在数据处理流程中开箱即用。
类型支持
支持传统的shell任务,同时支持大数据平台任务调度:MR、Spark、SQL(mysql、postgresql、hive/sparksql)、python、procedure、sub_process。
可视化流程定义
所有流、定时操作都是可视化的,通过拖拽来绘制DAG,配置数据源及资源,同时对于第三方系统,提供api方式的操作。
任务监控
任务状态、任务类型、重试次数、任务运行机器、可视化变量,以及任务流执行日志。
暂停/恢复/补数
支持暂停、恢复、补数操作。
其他
支持HA,去中心化的多Master和多Worker。DolphinScheduler上的用户可以通过租户和hadoop用户实现多对一或一对一的映射关系。无法做到细节的权限管控。
任务队列机制,单个机器上可调度的任务数量可以灵活配置,当任务过多时会缓存在任务队列中,不会操作机器卡死。
调度器使用分布式调度,整体的调度能力会随集群的规模线性正常,Master和Worker支持动态上下线,可以自由进行配置。
可以通过对用户进行资源、项目、数据源的访问授权。支持,可视化管理文件,及相关udf函数等。
相关文章:
大数据调度平台分类大对比(Oozie/Azkaban/AirFlow/XXL-Job/DolphinScheduler)
大数据调度平台oozie、azkaban、dolphinscheduler对比)
为者常成,行者常至
自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)