大数据环境下,调度工具比不可少,离线批任务和准实时任务都需要调度去驱动。下文介绍主流大数据调度工具对比DolphinScheduler Azkaban Airflow Oozie Xxl-job
Xxl-job | DolphinScheduler | Azkaban | Airflow | Oozie | |
定位 | 一个轻量级分布式的任务调度框架 | 解决数据处理流程中错综复杂的依赖关系 | 为了解决Hadoop的任务依赖关系问题 | 通用的批量数据处理 | 管理Hdoop作业(job)的工作流程调度管理系统 |
任务类型支持 | Java | 支持传统的shell任务,同时支持大数据平台任务调度:MR、Spark、SQL(mysql、postgresql、hive/sparksql)、python、procedure、sub_process | Command、HadoopShell、Java、HadoopJava、Pig、Hive等,支持插件式扩展 | Python、Bash、HTTP、Mysql等,支持Operator的自定义扩展。 | 统一调度hadoop系统中常见的mr任务启动、Java MR、Streaming MR、Pig、Hive、Sqoop、Spark、Shell等 |
可视化流程定义 | 无,可配置任务级联触发 | 是 所有流定时操作都是可视化的,通过拖拽来绘制DAG,配置数据源及资源,同时对于第三方系统,提供api方式的操作。 |
否 通过自定义DSL绘制DAG并打包上传 |
否 通过python代码来绘制DAG,使用不便 |
否 配置相关的调度任务复杂,依赖关系、时间触发、事件触发使用xml语言进行表达 |
任务监控支持 | 无 | 任务状态、任务类型、重试次数、任务运行机器、可视化变量等关键信息一目了然 | 只能看到任务状态 | 不能直观区分任务类型 | 任务状态、任务类型、任务运行机器、创建时间、启动时间、完成时间等。 |
自定义任务类型支持 | 是 需要java先开发具体执行器 |
是 | 是 | 是 | 是 |
暂停/恢复/补数 | 支持暂停、恢复操作 | 支持暂停、恢复 补数操作 | 否 只能先将工作流杀死在重新运行 |
否 只能先将工作流杀死在重新运行 |
支持启动/停止/暂停/恢复/重新运行: Oozie支持Web,RestApi,Java API操作 |
高可用支持 | 支持HA 调度中心HA和执行器HA |
支持HA 去中心化的多Master和多Worker |
通过DB支持HA -但Web Server存在单点故障风险 |
通过DB支持HA -但Scheduler存在单点故障风险 |
通过DB支持HA |
多租户支持 | 否 | 支持 dolphinscheduler上的用户可以通过租户和hadoop用户实现多对一或一对一的映射关系,这对大数据作业的调度是非常重要。 |
否 | 否 | 否 |
过载处理能力 | 任务队列机制,轮询 | 任务队列机制,单个机器上可调度的任务数量可以灵活配置,当任务过多时会缓存在任务队列中,不会操作机器卡死 | 任务太多时会卡死服务器 | 任务太多时会卡死服务器 | 调度任务时可能出现死锁 |
集群扩展支持 | 是 新注册执行器即可 |
是 调度器使用分布式调度,整体的调度能力会随集群的规模线性正常,Master和Worker支持动态上下线 |
是 -只Executor水平扩展 |
是 -只Executor水平扩展 |
是 |
非常推荐Apache DolphinScheduler
—— 调度选的好,下班回家早;调度选的对,半夜安心睡;
Apache DolphinScheduler是一个分布式去中心化,易扩展的可视化DAG工作流任务调度系统。致力于解决数据处理流程中错综复杂的依赖关系,使调度系统在数据处理流程中开箱即用,目前已累计有 **400+** 公司在生产上使用。
特点
**高可靠性**
去**中心化**的多Master和多Worker, 自身支持HA功能, 采用任务队列来避免过载,不会造成机器卡死
**简单易用**
**DAG** 监控界面,所有流程定义都是可视化,通过拖拽任务定制DAG,通过API方式与第三方系统对接, 一键部署
**丰富的使用场景**
支持暂停恢复操作. 支持多租户,更好的应对大数据的使用场景. 支持更多的任务类型,如 spark, hive, mr, python, sub_process, shell
**高扩展性**
支持自定义任务类型,调度器使用分布式调度,调度能力随集群线性增长,Master和Worker支持动态上下线
主要能力
**Task以DAG形式关联,实时监控任务的状态。**
**支持Shell、MR、Spark、SQL、依赖等10多种任务类型。**
**工作流优先级、任务优先级,全局参数及局部自定义参数**
**工作流可定时、依赖、手动、暂停/停止/恢复**
**支持补数、多租户、日志在线查看及资源在线管理**
**完善的系统服务监控,任务超时告警/失败。**
**去中心化设计确保系统的稳定、高可用。**
**支持每日十万数据量级任务稳定运行**
社区非常Nice,值得拥有!!!
微信扫码关注
及时收看更多精彩内容