工作流调度系统(DolphinScheduler、Azkaban、Airflow、Oozie 和 XXL-JOB)

1. DolphinScheduler

1.1 DolphinScheduler介绍

DolphinScheduler 是一个分布式去中心化易扩展可视化 DAG 工作流任务调度系统,专注于解决数据处理流程中的依赖关系 。它支持多种任务类型,包括但不限于 ShellMRSparkSQLPython 等,并且提供丰富的任务状态监控信息和可视化的 DAG 定义界面 。DolphinScheduler 的架构经过升级,引入了 Netty 进行节点间通信,并提供了多种任务分发算法。

1.2 DolphinScheduler优点

  • 简单易用:DAG监控界面,所有流程定义都是可视化,通过拖拽任务完成定制DAG,通过API方式与第三方系统集成, 一键部署。
  • 高可靠性:去中心化的多Master和多Worker服务对等架构, 避免单Master压力过大,另外采用任务缓冲队列来避免过载。
  • 丰富的使用场景:支持多租户,支持暂停恢复操作. 紧密贴合大数据生态,提供Spark, Hive, M/R, Python, Sub_process, Shell等近20种任务类型。
  • 高扩展性:支持自定义任务类型,调度器使用分布式调度,调度能力随集群线性增长,Master和Worker支持动态上下线。

2. Azkaban

2.1 Azkaban介绍

Azkaban 是由LinkedIn开源的批量工作流任务调度器,它通过一个易于使用的 Web 用户界面来维护和跟踪工作流 。Azkaban 支持插件式扩展,并且可以通过 XML 语言来配置任务之间的依赖关系 。不过,Azkaban 在任务过多时可能会出现服务器卡顿的情况,且 Web Server 存在单点故障风险。

2.2 Azkaban优点

  • 易于配置:配置相对简单,容易上手。
  • 权限管理:提供了较为细致的权限控制。

3. Airflow

3.1 Airflow介绍

Airflow 是一个由 Python 编写的 Web 应用,它允许用户编写、安排和监控工作流。Airflow 使用了强大的 Jinja 模板引擎,支持动态生成工作流,并且可以轻松扩展以适应不同环境 。Airflow 的用户界面丰富,易于查看和管理正在运行的管道。

3.1 Airflow优点

  • 灵活性高:支持自定义任务和扩展。
  • 强大的社区支持:有丰富的资源和插件可用。

4. Oozie

4.1 Oozie 介绍

Oozie 是一个工作流调度系统,用于管理 Hadoop 作业。Oozie 的工作流由动作组成,形成一个有向无环图 (DAG)。Oozie 支持多种类型的 Hadoop 作业,并且可以与 Hadoop 生态圈的其他部分集成 。Oozie 是一个可伸缩、可靠和可扩展的系统,但可能存在一些使用上的坑,特别是在 launcher job 解析 job 时 。

4.2 Oozie 优点

  • 与 Hadoop 生态系统集成紧密:适用于大规模的 Hadoop 任务调度。
  • 支持多种作业类型:如 MapReduce、Hive 等。

5. XXL-JOB

5.1 XXL-JOB介绍

XXL-JOB 是一个轻量级的分布式任务调度框架,其核心设计目标是开发迅速、学习简单、轻量级和易扩展 。XXL-JOB 提供了运维界面,使得维护成本较小,并且支持错误预警和多种路由策略,可以减轻执行服务器的压力

5.2 XXL-JOB优点

  • 轻量高效:占用资源少,性能较好。
  • 易于扩展:支持自定义开发扩展。

6. 总结

如果项目主要基于 Hadoop 生态Oozie 可能是一个较好的选择;如果需要高度的灵活性和自定义扩展Airflow 可能更合适。

  • 13
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值