Apache DolphinScheduler 伪集群部署指南
伪集群部署概述
Apache DolphinScheduler 伪集群部署是一种在单台机器上模拟分布式环境的部署方式。在这种模式下,Master Server、Worker Server、API Server 和 Alert Server 等核心组件都运行在同一台机器上。这种部署方式非常适合以下场景:
- 开发测试环境搭建
- 功能完整性和性能初步验证
- 小规模任务调度需求
- 学习和熟悉 DolphinScheduler 系统架构
与单机(Standalone)模式相比,伪集群部署能提供更完整的分布式特性体验;与完全分布式集群相比,它又大大降低了硬件要求和部署复杂度。
环境准备
硬件要求
- 内存:建议至少 8GB
- CPU:建议 4 核以上
- 磁盘:建议 50GB 以上可用空间
软件依赖
-
Java 环境
- 版本要求:JDK 1.8 或 JDK 11
- 配置要求:设置 JAVA_HOME 环境变量,并将 bin 目录加入 PATH
-
数据库支持(任选其一)
- PostgreSQL 8.2.15+
- MySQL 5.7+(需配套 JDBC Driver 8.0.33)
-
注册中心(任选其一)
- ZooKeeper 3.8.0+
- MySQL 8.0.33+
- ETCD
-
进程树分析工具
- macOS:安装 pstree
- Linux(Fedora/RedHat/CentOS/Ubuntu/Debian):安装 psmisc
部署步骤详解
1. 获取安装包
建议从官方渠道获取最新稳定版本的二进制安装包。下载后解压到目标目录。
2. 插件依赖处理
从 3.3.0 版本开始,系统采用插件化架构,核心包不再包含所有插件。需要手动下载或通过脚本安装:
bash ./bin/install-plugins.sh 3.3.0
插件配置位于 conf/plugins_config
文件,可按需定制。例如仅保留 shell 任务插件:
--task-plugins--
dolphinscheduler-task-shell
--end--
3. 系统用户配置
创建专用部署用户并配置 sudo 权限:
# 创建用户
useradd dolphinscheduler
# 设置密码
echo "dolphinscheduler" | passwd --stdin dolphinscheduler
# 配置sudo免密
echo 'dolphinscheduler ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers
sed -i 's/Defaults requiretty/#Defaults requiretty/g' /etc/sudoers
# 设置目录权限
chown -R dolphinscheduler:dolphinscheduler apache-dolphinscheduler-*-bin
chmod -R 755 apache-dolphinscheduler-*-bin
重要说明:多租户任务执行依赖 sudo 权限切换用户,必须确保部署用户有无密码 sudo 权限。
4. 注册中心配置
如果选择 ZooKeeper 作为注册中心,需先完成 ZooKeeper 的安装和启动。
5. 配置文件修改
核心配置文件位于多个位置,需要统一协调配置:
主环境配置文件 bin/env/dolphinscheduler_env.sh
# Java环境
export JAVA_HOME=/opt/soft/java
# 数据库配置
export DATABASE=postgresql
export SPRING_PROFILES_ACTIVE=${DATABASE}
export SPRING_DATASOURCE_URL="jdbc:postgresql://127.0.0.1:5432/dolphinscheduler"
export SPRING_DATASOURCE_USERNAME=ds_user
export SPRING_DATASOURCE_PASSWORD=ds_password
# 服务器配置
export SPRING_CACHE_TYPE=none
export SPRING_JACKSON_TIME_ZONE=Asia/Shanghai
# 注册中心
export REGISTRY_TYPE=zookeeper
export REGISTRY_ZOOKEEPER_CONNECT_STRING=localhost:2181
# 任务依赖
export HADOOP_HOME=/opt/soft/hadoop
export SPARK_HOME=/opt/soft/spark
export HIVE_HOME=/opt/soft/hive
export FLINK_HOME=/opt/soft/flink
# 路径设置
export PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$SPARK_HOME/bin:$HIVE_HOME/bin:$FLINK_HOME/bin:$PATH
配置优先级:
dolphinscheduler_env.sh
会覆盖各服务的 application.yaml 配置。
各服务配置文件
- API Server:
api-server/conf/application.yaml
- Master Server:
master-server/conf/application.yaml
- Worker Server:
worker-server/conf/application.yaml
- Alert Server:
alert-server/conf/application.yaml
6. 数据库初始化
根据选择的数据库类型执行初始化脚本,创建必要的数据库和表结构。
7. 服务启动
按顺序启动各组件:
# API服务
bash ./bin/dolphinscheduler-daemon.sh start api-server
# Master服务
bash ./bin/dolphinscheduler-daemon.sh start master-server
# Worker服务
bash ./bin/dolphinscheduler-daemon.sh start worker-server
# Alert服务
bash ./bin/dolphinscheduler-daemon.sh start alert-server
启动后可通过以下命令检查服务状态:
bash ./bin/dolphinscheduler-daemon.sh status api-server
bash ./bin/dolphinscheduler-daemon.sh status master-server
bash ./bin/dolphinscheduler-daemon.sh status worker-server
bash ./bin/dolphinscheduler-daemon.sh status alert-server
系统访问
启动成功后,通过浏览器访问:
http://<服务器IP>:12345/dolphinscheduler/ui
默认管理员账号:admin/dolphinscheduler123
服务管理
启停单个服务
# 停止Master服务
bash ./bin/dolphinscheduler-daemon.sh stop master-server
# 启动Worker服务
bash ./bin/dolphinscheduler-daemon.sh start worker-server
注意事项
-
Python Gateway 服务:默认与 API Server 一起启动,如需禁用可修改
api-server/conf/application.yaml
:python-gateway: enabled: false
-
资源中心:默认使用本地目录
/tmp/dolphinscheduler
,可通过修改conf/common.properties
调整。 -
日志查看:各组件日志位于对应服务的
logs
目录下,如api-server/logs/
。
常见问题处理
-
服务启动失败:
- 检查 JAVA_HOME 配置是否正确
- 检查数据库连接配置和权限
- 查看对应服务的日志文件
-
任务执行问题:
- 确保部署用户有 sudo 权限且配置了免密
- 检查任务依赖的外部环境(如 Hadoop、Spark 等)是否配置正确
-
性能问题:
- 单机部署时注意资源分配,避免内存不足
- 根据任务量调整各服务的 JVM 参数
通过以上步骤,您应该已经成功完成了 Apache DolphinScheduler 的伪集群部署。这种部署方式既能体验分布式特性,又保持了部署的简便性,是开发和测试环境的理想选择。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考