深入浅出Apache DolphinScheduler
Apache DolphinScheduler 是一个大数据调度任务框架。从当前的CSDN的GitCode的热度来看,其在二月份排名第6位。那是相当的热门的。
Apache DolphinScheduler 是Apache旗下的开源项目,目前已经被Fork了2700次,Star了7300次;
这还是相当厉害了!其是一个云原生的可视化的大数据工作流调度系统,其使命就是致力于解决复杂大数据任务依赖,默认就支持多个大数据任务之间的数据操作的编排。
相对于其他的大数据调度框架:
- azkaban
- Airflow
- XxJob
DolphinScheduler 功能强大了不少!其支持的强大功能如下:
- 本身就支持HA
- 任务状态、任务类型、重试次数、任务运行机器、可视化变量等关键信息一目了然
- 任务队列机制,单个机器上可调度的任务数量可以灵活配置,当任务过多时会缓存在任务队列中,不会造成机器卡死
- 任务状态、任务类型、重试次数、任务运行机器、可视化变量等关键信息一目了然
- 所有流程定义操作都是可视化的,通过拖拽任务来绘制DAG,配置数据源及资源。同时对于第三方系统,提供api方式的操作。
- 一键部署
- 支持暂停,恢复操作
- easyscheduler上的用户可以通过租户和hadoop用户实现多对一或一对一的映射关系,这对大数据作业的调度是非常重要的。
- 支持传统的shell任务,同时支持大数据平台任务调度: MR、Spark、SQL(mysql、postgresql、hive、sparksql)、Python、Procedure、Sub_Process
- 调度器使用分布式调度,整体的调度能力会随便集群的规模线性增长,Master和Worker支持动态上下线
其基本架构如下,从下图可以看出,其主要包括下面的组件:
- UI
- API 网关
- Master 服务器
- Worker 服务器
- DB(MySQL,PostgreSQL)
- Zookeeper
其启动流程活动图如下:
DolphinScheduler提供3种部署模式:
1. 单节点部署模式
主要是看看DolphinScheduler提供了哪些功能,感受一下DolphinScheduler的功能
伪集群模式
在单一服务器上部署多个集群,在测试环境下经常用到此模式,其需要连接数据库在生产环境部署
支持两个模式:
3.1 在多个服务器上集群部署
3.2 在K8S里面部署
下面笔者部署一个简单的单节点服务器(笔者的机器是CentOs 7 64bit):
步骤1 下载并安装JDK 1.8+
步骤2 下载DolphinScheduler
当前的最新版本是2.0.3
wget https://dlcdn.apache.org/dolphinscheduler/2.0.3/apache-dolphinscheduler-2.0.3-bin.tar.gz --no-check-certificate
步骤3 解压缩tar包并启动
tar -xvzf apache-dolphinscheduler-*-bin.tar.gz
cd apache-dolphinscheduler-*-bin
sh ./bin/dolphinscheduler-daemon.sh start standalone-server
步骤4 输入地址 http://<host_name>:12345/dolphinscheduler
默认密码是: admin/dolphinscheduler123
步骤5 查看主界面
步骤6 创建项目并定义工作流
从工作流的工具栏来看,其支持:
- Shell
- SUB_Process
- Procedure
- SQL
- Spark
- Flink
- MR
- Python
- Dependent
- HTTP
- DATAX
- PEGEON
- SQOOP
- Conditions
- Switch
- WATERDROP
由此可见,其支持的大数据的功能模块还是非常丰富多彩的!
另外值得一提的是,其也支持多租户! 这在一些业务环境里面还是非常有用的!
深入浅出Apache DolphinScheduler相关推荐
- 开源大数据:Apache DolphinScheduler
Apache DolphinScheduler 分布式易扩展的可视化DAG工作流任务调度系统 Apache DolphinScheduler是一个分布式去中心化,易扩展的可视化DAG工作流任务调度系统 ...
- 专访|带着问题去学习,Apache DolphinScheduler 王福政
| 转载自:开源之夏 | 责编:沈于蓝 | 编辑:胡欣元 | 设计:王福政 本期专访来自 Apache DolphinScheduler Contributor 王福政. 01 自我介绍 我与开源 深 ...
- Apache DolphinScheduler 海豚调度器自定义时间参数
在Apache DolphinScheduler 海豚调度器(本文简称:小海豚) 官网中,我们看到其自定义时间的参数是这样介绍的 1.支持代码中自定义变量名,声明方式:${变量名}.可以是引用 &qu ...
- 工作流任务调度系统:Apache DolphinScheduler
1 概述 Apache DolphinScheduler(目前处在孵化阶段)是一个分布式.去中心化.易扩展的可视化DAG工作流任务调度系统,其致力于解决数据处理流程中错综复杂的依赖关系,使调度系统在数 ...
- Apache DolphinScheduler征稿 — 小Demo轻松入门DolphinSchedule大数据调度工具
文章目录 官方文档 | [GitHub源码](https://github.com/apache/dolphinscheduler) 一.从实际需求入手,我们为何要选择使用DolphinSchched ...
- Apache DolphinScheduler v2.0.1 Master 和 Worker 执行流程分析系列(三)
点亮 ⭐️ Star · 照亮开源之路 https://github.com/apache/dolphinscheduler 这是一系列关于 DolphinScheduler v2.0.1的源码分析文 ...
- 工作流调度系统Apache DolphinScheduler介绍和设计原理
1 概述 Apache DolphinScheduler(目前处在孵化阶段)是一个分布式.去中心化.易扩展的可视化DAG工作流任务调度系统,其致力于解决数据处理流程中错综复杂的依赖关系,使调度系统在数 ...
- 感谢有你!Apache DolphinScheduler 项目 GitHub star 突破 8k
本周伊始,Apache DolphinScheduler 项目在 GitHub 上的 Github Star 总数首次突破 8K.目前,Apache DolphinScheduler 社区已经拥有 C ...
- 讲师征集令 | Apache DolphinScheduler Meetup分享嘉宾,期待你的议题和声音!
Apache DolphinScheduler 社区线上 Meetup 讲师&议题正式对外征集啦!在全球疫情的笼罩下,我们的线上技术沙龙活动一直在紧锣密鼓的筹备举办,在此我们诚心向社区广大用户 ...
最新文章
- java和python的web自动化有什么区别-python和java哪个更适合做自动化?
- Page 56 WPF布局原则
- swig封装 c语言函数到python库,python swig 调用C/C++接口
- centOS安装Ftp
- LeetCode 1104. 二叉树寻路(数学位运算)
- GC算法-标记压缩算法
- 中国电子学会scratch等级考试三级
- 通过Android反编译技术研究国内陌生人社交即时通讯的技术方案
- python里的拼接_Python拼接字符串的7种方法总结
- java爬虫爬取主流房屋网站
- ssis 表达式任务_SSIS表达式任务与将变量作为表达式求值
- JavaScript中var关键字的使用详解
- 10分钟利用django搭建一个博客
- conda: command not found
- PRD文档详解(20191209)
- 非监督分类ecognition_ENVI遥感影像土地利用分类说明
- 解决IntelliJ IDEA中打开JSP文件(使用快捷键Alt+F2)时,弹出的浏览器网页只显示JSP源码
- macos 10.15 软件损坏/无法验证开发者
- 小白之WEB前端--第一篇
- android 手机震动功能吗,Android编程实现手机震动功能的方法
热门文章
- 社区送温暖!Unitimes携手环信新春送好礼
- Best practices for a new Go developer
- download failed: assets/main/import/09/09f53264-cd95-4751-99ad-d516c164dd80._cconb.dbbin, status: 40
- 独家对话行癫:最详解密阿里云顶层设计和底层逻辑
- 输入一个年份和一个月份,输出该年该月有多少天
- 有关与windows的一些资料以及链接(一)
- 漂亮的HTML网站赞助打赏单页源码
- 计算机专业我的工匠梦作文,【推荐】我的科技梦作文7篇
- Gradle项目在IDEA中运行时提示:Unnecessarily replacing a task that does not exist is not supported. Use create
- linux jnlp显示异常,Web启动异常 JNLP