目录
一、什么是 DolphinScheduler
二、DolphinScheduler 的特性
三、DolphinScheduler 核心架构
四、单机环境部署流程
1、下载安装包
2、上传至服务器,解压缩
3、单机启动
4、登录 dolphinscheduler UI
5、配置数据库【非必需】
(1)下载 MySQL 驱动
(2)上传服务器并解压缩
(3)引入mysql连接驱动包
(4)在MySQL中创建dolphinscheduler数据库
(5)修改 dolphinscheduler 的数据源连接
(6)通过Shell 脚本来初始化数据库
五、集群环境部署流程
1、环境准备
2、上传服务器并解压缩
3、修改配置项
4、配置 MySql 数据库
5、执行安装
6、启动服务
7、启动成功后,登录UI
一、什么是 DolphinScheduler
Apache DolphinScheduler 是一个分布式易扩展的可视化 DAG 工作流任务调度开源系统。适用于企业级场景,提供了一个可视化操作任务、工作流和全生命周期数据处理过程的解决方案。
Apache DolphinScheduler 旨在解决复杂的大数据任务依赖关系,并为应用程序提供数据和各种 OPS 编排中的关系。 解决数据研发ETL依赖错综复杂,无法监控任务健康状态的问题。 DolphinScheduler 以 DAG(Directed Acyclic Graph,DAG,有向无环图)流式方式组装任务,可以及时监控任务的执行状态,支持重试、指定节点恢复失败、暂停、恢复、终止任务等操作。
二、DolphinScheduler 的特性
- 可视化 DAG: 用户友好的,通过拖拽定义工作流的,运行时控制工具
- 模块化操作: 模块化有助于轻松定制和维护。
- 支持多种任务类型: 支持Shell、MR、Spark、SQL等10余种任务类型,支持跨语言,易于扩展
- 丰富的工作流操作: 工作流程可以定时、暂停、恢复和停止,便于维护和控制全局和本地参数。
- 高可靠性: 去中心化设计,确保稳定性。 原生 HA 任务队列支持,提供过载容错能力。 DolphinScheduler 能提供高度稳健的环境。
- 高扩展性: 支持多租户和在线资源管理。支持每天10万个数据任务的稳定运行。
三、DolphinScheduler 核心架构
主要角色如下:
- MasterServer:采用分布式无中心设计理念,MasterServer主要负责 DAG 任务切分、任务提交、任务监控,并同时监听其它 MasterServer 和 WorkerServer 的健康状态。
- WorkerServer:也采用分布式无中心设计理念,WorkerServer主要负责任务的执行和提供日志服务。
- ZooKeeper服务:系统中的 MasterServer 和 WorkerServer 节点都通过 ZooKeeper 来进行集群管理和容错。
- Alert服务:提供告警相关服务。
- API接口层:主要负责处理前端UI层的请求。
- UI:系统的前端页面,提供系统的各种可视化操作界面。
四、单机环境部署流程
1、下载安装包
地址:Index of /apache/dolphinscheduler/3.2.1
2、上传至服务器,解压缩
tar -zxvf apache-dolphinscheduler-3.2.1-bin.tar.gz
3、单机启动
./bin/dolphinscheduler-daemon.sh start standalone-server
4、登录 dolphinscheduler UI
浏览器输入地址:http://{所在服务器IP}:12345/dolphinscheduler/ui
用户名:admin
密码:dolphinscheduler123
【注】无法访问可能是因为服务器端口12345未开放
① 查看 12345 端口号是否开放:firewall-cmd --query-port=12345/tcp
② 打开端口:firewall-cmd --zone=public --add-port=12345/tcp --permanent
③ 重启防火墙:firewall-cmd –reload
5、配置数据库【非必需】
Standalone server 使用 H2 数据库作为其元数据存储数据,这是为了上手简单,用户在启动服务器之前不需要启动数据库。但是如果用户想将元数据库存储在 MySQL 或 PostgreSQL 等其他数据库中,必须更改一些配置。以下以修改成MySQL数据库为例:
(1)下载 MySQL 驱动
地址:https://downloads.mysql.com/archives/c-j/
(2)上传服务器并解压缩
(3)引入mysql连接驱动包
将 mysql-connector-j-8.2.0.jar 拷贝到 DolphinScheduler 的每个模块的 libs 目录下。
其中包括 api-server/libs 、alert-server/libs 、master-server/libs 、worker-server/libs
(4)在MySQL中创建dolphinscheduler数据库
(5)修改 dolphinscheduler 的数据源连接
修改文件:./bin/env/dolphinscheduler_env.sh
(6)通过Shell 脚本来初始化数据库
脚本位置:apache-dolphinscheduler-3.2.1-bin/tools/bin/upgrade-schema.sh
五、集群环境部署流程
DolphinScheduler 的集群需要依赖 Zookeeper,目前已有一套 CDH 的组网环境,其中 zookeeper 的版本为 3.4.5。DolphinScheduler 3.2.1 版本使用的是 Zookeeper 3.8.0 版本。版本不一致导致我在启动 DolphinScheduler时,一直报如下错误:
尝试将 CDH 中 zookeeper 的版本升至 3.8.3后,仍未解决问题,因此将 DolphinScheduler 版本降至 2.0.6。
1、环境准备
(1) 已安装了 Zookeeper 集群环境,CDH 组网环境如下:
主机名 | IP | 服务 |
hadoop103 | 192.168.1.247 | JDK、zookeeper |
hadoop104 | 192.168.1.248 | JDK、zookeeper |
hadoop105 | 192.168.1.249 | JDK、zookeeper、MySQL |
(2) DolphinScheduler 要搭建的集群环境:
【注】三台服务器之间能互相免密登录,涉及文件拷贝等操作。
角色 | 服务器IP |
master | 192.168.1.247 |
master | 192.168.1.248 |
worker | 192.168.1.249 |
2、上传服务器并解压缩
过程略
3、修改配置项
① apache-dolphinscheduler-2.0.6-bin/conf/env/dolphinscheduler_env.sh
② apache-dolphinscheduler-2.0.6-bin/conf/config/install_config.conf
4、配置 MySql 数据库
① 手动创建数据库dolphinscheduler
② 将MySQL驱动包放入apache-dolphinscheduler-2.0.6-bin/lib/下
③ 执行脚本初始化数据库
脚本位置:apache-dolphinscheduler-2.0.6-bin/script/create-dolphinscheduler.sh
5、执行安装
脚本位置:apache-dolphinscheduler-2.0.6-bin/install.sh
只在 247 服务器上执行脚本即可,执行后,会在三台主从机上的 home/dolphinscheduler 下产生相关文件:
6、启动服务
脚本位置:/apache-dolphinscheduler-2.0.6-bin/bin/start-all.sh
另外:
查看状态:status-all.sh
停止服务:stop-all.sh
7、启动成功后,登录UI