快速上手 Apache DolphinScheduler
一、概述
分布式易扩展的可视化工作流任务调度平台
Apache DolphinScheduler是一个分布式去中心化,易扩展的可视化DAG工作流任务调度平台。致力于解决数据处理流程中错综复杂的依赖关系,使调度系统在数据处理流程中开箱即用。
Apache DolphinScheduler(目前处在孵化阶段)是一个分布式、去中心化、易扩展的可视化DAG工作流任务调度系统,其致力于解决数据处理流程中错综复杂的依赖关系,使调度系统在数据处理流程中开箱即用。
DolphinScheduler是今年(2019年)中国易观公司开源的一个调度系统,在今年美国时间2019年8月29号,易观开源的分布式任务调度引擎DolphinScheduler(原EasyScheduler)正式通过顶级开源组织Apache基金会的投票决议,根据Apache基金会邮件列表显示,在包含11个约束性投票(binding votes)和2个无约束性投票(non-binding votes)的投票全部持赞同意见,无弃权票和反对票,投票顺利通过,这样便以全票通过的优秀表现正式成为了Apache孵化器项目!
非常推荐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多种任务类型。
工作流优先级、任务优先级,全局参数及局部自定义参数
工作流可定时、依赖、手动、暂停/停止/恢复
支持补数、多租户、日志在线查看及资源在线管理
完善的系统服务监控,任务超时告警/失败。
去中心化设计确保系统的稳定、高可用。
支持每日十万数据量级任务稳定运行
设计目标
客户案例
DolphinScheduler 要解决?
多租户管理
架构讲解
二、实战
1、安装compose
sudo curl -L "https://github.com/docker/compose/releases/download/v2.2.3/docker-compose-linux-x86_64" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
[root@centos02 bin]# docker-compose --version
Docker Compose version v2.2.3
[root@centos02 bin]#
cd /usr/local/bin
[root@centos02 docker-swarm]# pwd
/opt/modules/apache-dolphinscheduler-2.0.5-src/docker/docker-swarm
[root@centos02 docker-swarm]# docker pull dolphinscheduler.docker.scarf.sh/apache/dolphinscheduler:latest
[root@centos02 docker-swarm]# docker-compose up -d
访问:
http://192.168.222.11:12345/dolphinscheduler/ui/view/login/index.html
用户名密码:admin/dolphinscheduler123
Hive任务节点
三、有赞数据中台架构
Airflow VS DolphinScheduler价值评估
DS接入架构设计
改造方案设计-DS工作流定义状态梳理
功能补齐-任务类型适配
实际生产比较核心的能力
现状&规划&展望
接入现状
这里展示的是,对接的DS(dolphin Scheduler)的API,在用户层面统一使用admin用户
目前使用的是 DS 2.0 版本
工作流节点的任务展示:
DS2.0 可视化程度会更加的好看
期待与展望-DS插件化
四、DS在平安的架构重构及落地经验
1、缘起
- 背景
- 需求分析
背景
需求分析
2、调研
- 选型
- 需求分析
调研
架构分析
旧版架构
新版架构
注意:EasyScheduler本身不依赖Hadoop、Hive、Spark、PostgreSQL,仅是会调用他们的Client,用于对应任务的运行。
1、如何减少扫表,任务如何并发触发
2、任务如何减少阻塞
3、重构
- 任务触发
- 任务执行
相关文章:
工作流任务调度系统:Apache DolphinScheduler
主流大数据调度工具对比DolphinScheduler Azkaban Airflow Oozie Xxl-job
为者常成,行者常至
自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)