目录
(4)在MySQL中创建dolphinscheduler数据库
一、什么是 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