分布式调度系统-DolphinScheduler

原文转载地址:

头条号
IT思维

前提

数据平台(BP)建设过程中,会涉及大量的数据采集、处理、计算等方面的工作,而且随着需求的增加要承担的任务越来越多。迫切需要一个简单易用、支持可视化管理的调度系统,考虑到要将现有的定时任务从crontab快速迁移到新调度系统,且要易于部署管理,方便扩展,支持HA等要求。调研了多款调度系统如airflow、azkaban、gocron、DolphinScheduler等系统。几个调度平台之间各有亮点,最终选择了国产开源的调度系统 DolphinScheduler。

DolphinScheduler 在数据平台中的功能定位

dlphinshcheduler

DolphinScheduler 简介

分布式易扩展的可视化DAG工作流任务调度系统,Apache DolphinScheduler是一个分布式去中心化,易扩展的可视化DAG工作流任务调度系统。致力于解决数据处理流程中错综复杂的依赖关系,使调度系统在数据处理流程中开箱即用。

特性

高可靠性:

去中心化的多Master和多Worker, 自身支持HA功能, 采用任务队列来避免过载,不会造成机器卡死。

简单易用:

DAG监控界面,所有流程定义都是可视化,通过拖拽任务定制DAG,通过API方式与第三方系统对接, 一键部署。

丰富的使用场景:

支持暂停恢复操作. 支持多租户,更好的应对大数据的使用场景. 支持更多的任务类型,如 spark, hive, mr, python, sub_process, shell。

高扩展性:

支持自定义任务类型,调度器使用分布式调度,调度能力随集群线性增长,Master和Worker支持动态上下线。

主要功能如下:

以DAG图的方式将Task按照任务的依赖关系关联起来,可实时可视化监控任务的运行状态
支持丰富的任务类型:Shell、MR、Spark、SQL(mysql、postgresql、hive、sparksql),Python,Sub_Process、Procedure等
支持工作流定时调度、依赖调度、手动调度、手动暂停/停止/恢复,同时支持失败重试/告警、从指定节点恢复失败、Kill任务等操作
支持工作流优先级、任务优先级及任务的故障转移及任务超时告警/失败
支持工作流全局参数及节点自定义参数设置
支持资源文件的在线上传/下载,管理等,支持在线文件创建、编辑
支持任务日志在线查看及滚动、在线下载日志等
实现集群HA,通过Zookeeper实现Master集群和Worker集群去中心化
支持对Master/Worker cpu load,memory,cpu在线查看
支持工作流运行历史树形/甘特图展示、支持任务状态统计、流程状态统计
支持补数
支持多租户
支持国际化
还有更多等待伙伴们探索

服务架构

集群架构

项目活跃程度

项目活跃

后续

本次介绍调度平台仅为数据平台框架中一个组件,笔者使用全开源框架规划了一套BI框架,可以满足企业日常数据分析、处理、展示需要,后续将会持续更新相关组件,请持续关注本站。

参考信息:

中国官网:https://dolphinscheduler.apache.org/zh-cn/
项目地址:https://github.com/apache/incubator-dolphinscheduler
那些公司在用:https://github.com/apache/incubator-dolphinscheduler/issues/57

猜你喜欢

转载自blog.51cto.com/michaelkang/2533103