Apache DolphinScheduler 伪集群部署指南

Apache DolphinScheduler 伪集群部署指南

dolphinscheduler Dolphinscheduler是一个分布式调度系统,主要用于任务调度和流程编排。它的特点是易用性高、可扩展性强、性能稳定等。适用于任务调度和流程自动化场景。 dolphinscheduler 项目地址: https://gitcode.com/gh_mirrors/dol/dolphinscheduler

伪集群部署概述

Apache DolphinScheduler 伪集群部署是一种在单台机器上模拟分布式环境的部署方式。在这种模式下,Master Server、Worker Server、API Server 和 Alert Server 等核心组件都运行在同一台机器上。这种部署方式非常适合以下场景:

  1. 开发测试环境搭建
  2. 功能完整性和性能初步验证
  3. 小规模任务调度需求
  4. 学习和熟悉 DolphinScheduler 系统架构

与单机(Standalone)模式相比,伪集群部署能提供更完整的分布式特性体验;与完全分布式集群相比,它又大大降低了硬件要求和部署复杂度。

环境准备

硬件要求

  • 内存:建议至少 8GB
  • CPU:建议 4 核以上
  • 磁盘:建议 50GB 以上可用空间

软件依赖

  1. Java 环境

    • 版本要求:JDK 1.8 或 JDK 11
    • 配置要求:设置 JAVA_HOME 环境变量,并将 bin 目录加入 PATH
  2. 数据库支持(任选其一)

    • PostgreSQL 8.2.15+
    • MySQL 5.7+(需配套 JDBC Driver 8.0.33)
  3. 注册中心(任选其一)

    • ZooKeeper 3.8.0+
    • MySQL 8.0.33+
    • ETCD
  4. 进程树分析工具

    • 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

注意事项

  1. Python Gateway 服务:默认与 API Server 一起启动,如需禁用可修改 api-server/conf/application.yaml

    python-gateway:
      enabled: false
    
  2. 资源中心:默认使用本地目录 /tmp/dolphinscheduler,可通过修改 conf/common.properties 调整。

  3. 日志查看:各组件日志位于对应服务的 logs 目录下,如 api-server/logs/

常见问题处理

  1. 服务启动失败

    • 检查 JAVA_HOME 配置是否正确
    • 检查数据库连接配置和权限
    • 查看对应服务的日志文件
  2. 任务执行问题

    • 确保部署用户有 sudo 权限且配置了免密
    • 检查任务依赖的外部环境(如 Hadoop、Spark 等)是否配置正确
  3. 性能问题

    • 单机部署时注意资源分配,避免内存不足
    • 根据任务量调整各服务的 JVM 参数

通过以上步骤,您应该已经成功完成了 Apache DolphinScheduler 的伪集群部署。这种部署方式既能体验分布式特性,又保持了部署的简便性,是开发和测试环境的理想选择。

dolphinscheduler Dolphinscheduler是一个分布式调度系统,主要用于任务调度和流程编排。它的特点是易用性高、可扩展性强、性能稳定等。适用于任务调度和流程自动化场景。 dolphinscheduler 项目地址: https://gitcode.com/gh_mirrors/dol/dolphinscheduler

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

<think>好的,我需要帮助用户在Docker中以伪集群模式部署DolphinScheduler。首先,我应该回忆一下DolphinScheduler的基本架构和组件,比如Master Server、Worker Server、API Server等。伪集群模式通常是指所有服务都运行在一个容器或多个容器中,但共享同一台机器的资源。 接下来,我需要考虑Docker部署的常规步骤,比如准备Dockerfile、编写docker-compose.yml配置文件,设置环境变量,以及网络配置等。用户提供的引用中有提到Docker的配置文件和构建命令,可以参考引用[1]中的配置选项和引用[2]中的构建命令示例。 然后,我需要确认DolphinScheduler是否有官方的Docker镜像或者社区提供的镜像。如果没有,可能需要用户自己构建,这时候需要确保Dockerfile正确安装所有依赖,比如Java、Hadoop等,如引用[2]提到的Hadoop和JDK的jar包需要放到正确的位置。此外,引用[3]提到所有组件都可以作为Docker容器部署,可能涉及多容器编排,比如使用docker-compose。 还需要注意数据持久化的问题,比如数据库的卷挂载,以及网络设置确保容器间通信。环境变量配置可能包括数据库连接信息、服务端口等。另外,用户可能需要初始化数据库,运行SQL脚本,这部分需要指导如何在容器启动时执行。 最后,验证部署是否成功,检查各个服务是否正常启动,访问Web界面等。可能还需要处理常见的错误,比如端口冲突、依赖服务未启动等。 现在,我需要将这些步骤整理成一个清晰的指南,确保用户能够逐步操作,并引用提供的参考资料中的相关信息。同时,生成相关问题帮助用户进一步了解。</think>### DolphinScheduler伪集群模式Docker部署指南 #### 一、准备工作 1. **获取基础镜像** 推荐使用官方或社区维护的DolphinScheduler镜像。若无官方镜像,需自行构建: ```dockerfile FROM openjdk:8-jdk RUN apt-get update && apt-get install -y python3 ADD apache-dolphinscheduler-3.1.9-bin.tar.gz /opt/ ``` 构建命令参考引用[2]: `docker build -f dolphinscheduler-Dockerfile -t yourname/dolphinscheduler:pseudo-1.0 .` 2. **依赖配置** - 确保容器内已安装Hadoop伪集群环境(若需集成Hadoop)[^2] - 将数据库驱动(如MySQL JDBC)放入镜像的`/lib`目录 --- #### 二、配置文件修改 1. **数据库配置** 修改`conf/application.yaml`中的数据库连接信息: ```yaml spring: datasource: url: jdbc:mysql://mysql-container:3306/dolphinscheduler username: root password: root ``` 2. **服务角色配置** 在`conf/workers.properties`中设置Worker节点为本地: ```properties worker.groups=default default.workers=worker1 worker1.host=localhost ``` --- #### 三、容器编排(docker-compose.yml) ```yaml version: '3' services: dolphinscheduler: image: yourname/dolphinscheduler:pseudo-1.0 ports: - "12345:12345" # API端口 - "5173:5173" # UI端口 volumes: - ./data:/opt/dolphinscheduler/data environment: - SPRING_DATASOURCE_URL=jdbc:mysql://mysql:3306/dolphinscheduler depends_on: - mysql mysql: image: mysql:5.7 environment: MYSQL_ROOT_PASSWORD: root volumes: - mysql_data:/var/lib/mysql volumes: mysql_data: ``` > 注:网络配置需确保容器间互通,参考Docker网络配置文档[^1] --- #### 四、初始化与启动 1. **数据库初始化** ```bash docker exec -it dolphinscheduler-container sh -c "/opt/dolphinscheduler/script/create-dolphinscheduler.sh" ``` 2. **启动服务** 通过docker-compose启动服务: ```bash docker-compose up -d ``` --- #### 五、验证部署 1. 访问Web UI:`http://localhost:5173`(默认账号admin/dolphinscheduler123) 2. 检查服务状态: ```bash docker logs dolphinscheduler-container | grep 'MasterServer|WorkerServer' ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秋孝盼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值