DolphinScheduler部署指南:四种部署方式详解

DolphinScheduler部署指南:四种部署方式详解

🔥【免费下载链接】dolphinscheduler Apache DolphinScheduler is the modern data orchestration platform. Agile to create high performance workflow with low-code 🔥【免费下载链接】dolphinscheduler 项目地址: https://gitcode.com/gh_mirrors/do/dolphinscheduler

本文详细介绍了Apache DolphinScheduler的四种部署方式:Standalone模式、Cluster集群模式、Docker容器化部署和Kubernetes云原生部署。Standalone模式适合快速体验和开发测试,将所有组件集成在单个JVM进程中;Cluster模式为生产环境设计,采用分布式架构实现高可用性;Docker部署提供容器化解决方案,便于快速部署和扩展;Kubernetes部署则充分利用云原生环境的弹性伸缩和资源管理能力。每种方式都包含详细的环境准备、配置步骤和架构解析。

Standalone模式快速体验

Standalone模式是DolphinScheduler最快速、最简单的部署方式,专为开发测试和快速体验设计。它将所有核心组件(Master、Worker、API Server、Alert Server等)集成在单个JVM进程中运行,无需复杂的集群配置,让您能够在几分钟内启动并体验DolphinScheduler的全部功能。

环境准备与要求

在开始Standalone模式部署前,请确保您的系统满足以下基本要求:

组件最低要求推荐配置
操作系统Linux/Windows/macOSLinux (CentOS 7+/Ubuntu 18.04+)
Java版本JDK 8+JDK 11+
内存4GB RAM8GB RAM
存储10GB可用空间20GB可用空间
数据库内置H2(默认)MySQL 5.7+/PostgreSQL 10+

快速启动步骤

1. 下载与解压

首先下载最新版本的DolphinScheduler发行包:

# 创建安装目录
mkdir -p /opt/dolphinscheduler
cd /opt/dolphinscheduler

# 下载最新版本(以3.2.0为例)
wget https://dlcdn.apache.org/dolphinscheduler/3.2.0/apache-dolphinscheduler-3.2.0-bin.tar.gz

# 解压安装包
tar -zxvf apache-dolphinscheduler-3.2.0-bin.tar.gz
cd apache-dolphinscheduler-3.2.0-bin
2. 数据库配置(可选)

Standalone模式默认使用内置的H2数据库,适合快速体验。如果需要使用外部数据库,可修改配置文件:

# 编辑数据库配置
vi conf/datasource.properties

# 修改以下配置(以MySQL为例)
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/dolphinscheduler?useUnicode=true&characterEncoding=UTF-8
spring.datasource.username=root
spring.datasource.password=your_password
3. 环境变量配置

设置必要的环境变量:

# 设置JAVA_HOME
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64

# 设置DolphinScheduler安装目录
export DOLPHINSCHEDULER_HOME=/opt/dolphinscheduler/apache-dolphinscheduler-3.2.0-bin

# 添加到PATH
export PATH=$JAVA_HOME/bin:$DOLPHINSSCHEDULER_HOME/bin:$PATH
4. 启动Standalone服务

使用提供的启动脚本快速启动:

# 赋予执行权限
chmod +x bin/dolphinscheduler-daemon.sh

# 启动Standalone服务
bin/dolphinscheduler-daemon.sh start standalone-server

启动过程会显示详细的日志信息,您可以通过以下命令查看启动状态:

# 查看启动状态
bin/dolphinscheduler-daemon.sh status standalone-server

# 查看实时日志
tail -f logs/standalone-server.log

架构原理与组件交互

Standalone模式虽然将所有组件集成在单个进程中,但其内部仍然保持着清晰的模块化架构:

mermaid

首次登录与基本配置

服务启动成功后,通过浏览器访问管理界面:

  • 访问地址: http://localhost:12345/dolphinscheduler
  • 默认用户名: admin
  • 默认密码: dolphinscheduler123

首次登录后建议进行以下基本配置:

1. 修改管理员密码
-- 如果使用H2数据库,密码加密存储在t_ds_user表
UPDATE t_ds_user SET user_password = '加密后的新密码' WHERE user_name = 'admin';
2. 创建测试项目

在Web界面中创建第一个项目:

  • 点击"项目管理" → "创建项目"
  • 输入项目名称:test-demo
  • 选择项目描述:测试项目
3. 配置工作环境
# 环境管理配置示例
environment:
  name: dev-environment
  config: |
    export SPARK_HOME=/opt/spark
    export PYTHON_PATH=/usr/bin/python3
    export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64

创建第一个工作流

通过一个简单的Shell任务工作流来体验DolphinScheduler的功能:

步骤1:创建工作流定义
{
  "name": "first-workflow",
  "description": "第一个测试工作流",
  "tasks": [
    {
      "name": "shell-task-1",
      "type": "SHELL",
      "params": {
        "rawScript": "echo 'Hello DolphinScheduler!' && date"
      }
    }
  ]
}
步骤2:配置任务参数
# Shell任务参数配置示例
script:
  type: shell
  command: |
    #!/bin/bash
    echo "任务开始时间: $(date)"
    echo "当前工作目录: $(pwd)"
    echo "环境变量: $JAVA_HOME"
    sleep 2
    echo "任务执行完成"
步骤3:执行与监控

工作流执行过程中,可以通过以下方式监控状态:

mermaid

常见问题排查

1. 启动失败排查
# 检查端口占用
netstat -tlnp | grep 12345

# 检查Java进程
jps -l | grep dolphinscheduler

# 查看详细错误日志
tail -n 100 logs/standalone-server-error.log
2. 性能优化建议

对于Standalone模式,可以通过以下配置提升性能:

# 修改conf/application.properties
server.tomcat.max-threads=200
server.tomcat.min-spare-threads=20
spring.datasource.hikari.maximum-pool-size=20
spring.datasource.hikari.minimum-idle=5
3. 内存调整

根据服务器配置调整JVM参数:

# 修改bin/standalone.sh中的JVM参数
export JAVA_OPTS="-Xms2g -Xmx4g -XX:MaxMetaspaceSize=512m"

进阶功能体验

Standalone模式虽然简化了部署,但仍然支持DolphinScheduler的所有核心功能:

1. 多类型任务支持
tasks:
  - name: python-task
    type: PYTHON
    params:
      rawScript: |
        print("Python任务执行")
        import pandas as pd
        print(f"Pandas版本: {pd.__version__}")
  
  - name: sql-task
    type: SQL
    params:
      type: MYSQL
      datasource: test-db
      sql: "SELECT COUNT(*) FROM user_table"
  
  - name: http-task
    type: HTTP
    params:
      url: "https://api.example.com/data"
      method: GET
2. 工作流调度策略
{
  "schedule": {
    "startTime": "2024-01-01 00:00:00",
    "endTime": "2024-12-31 23:59:59",
    "crontab": "0 0 * * * ?",
    "timezone": "Asia/Shanghai"
  },
  "failureStrategy": "CONTINUE",
  "warningType": "NONE",
  "warningGroupId": 0
}

通过Standalone模式的快速体验,您可以在完全功能的环境中进行开发测试,为后续的生产环境部署奠定坚实基础。这种部署方式特别适合个人学习、功能验证和小型项目开发场景。

Cluster集群模式生产部署

Apache DolphinScheduler的集群模式是为生产环境设计的高可用部署方案,采用分布式架构实现多Master和多Worker的协同工作。集群模式通过ZooKeeper作为注册中心,支持水平扩展和故障自动转移,能够满足企业级的高并发和高可用需求。

集群架构设计

DolphinScheduler集群模式采用主从架构,包含以下核心组件:

mermaid

核心组件说明:

组件数量作用高可用性
API Server≥2提供RESTful API接口负载均衡
Master Server≥2工作流调度和任务分派主备切换
Worker Server≥N任务执行和资源管理水平扩展
ZooKeeper≥3服务注册发现和协调集群模式
数据库1主多从元数据存储数据库高可用

环境准备与依赖

1. 系统要求
  • 操作系统: Linux (CentOS 7+, Ubuntu 16.04+)
  • Java: JDK 1.8+
  • 数据库: MySQL 5.7+/PostgreSQL 10+
  • 注册中心: ZooKeeper 3.4.6+
  • 资源存储: HDFS/S3/本地存储
2. 数据库初始化

首先创建DolphinScheduler所需的数据库和用户:

-- 创建数据库
CREATE DATABASE dolphinscheduler DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

-- 创建用户并授权
CREATE USER 'dolphinscheduler'@'%' IDENTIFIED BY 'dolphinscheduler';
GRANT ALL PRIVILEGES ON dolphinscheduler.* TO 'dolphinscheduler'@'%';
FLUSH PRIVILEGES;

执行数据库初始化脚本:

# 解压安装包后执行初始化
mysql -h192.168.1.100 -udolphinscheduler -p dolphinscheduler < script/sql/dolphinscheduler_mysql.sql

集群配置详解

1. 公共配置文件 (common.properties)
# 数据存储路径
data.basedir.path=/opt/dolphinscheduler/data

# 资源存储类型 (LOCAL/HDFS/S3/OSS)
resource.storage.type=HDFS
resource.storage.upload.base.path=/dolphinscheduler

# HDFS配置
resource.hdfs.fs.defaultFS=hdfs://namenode:8020
resource.hdfs.root.user=hdfs

# ZooKeeper配置
registry.plugin.name=zookeeper
registry.plugin.basedir=/dolphinscheduler/nodes
2. Master Server配置

创建 conf/application-master.yml

server:
  port: 5678

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://192.168.1.100:3306/dolphinscheduler?useUnicode=true&characterEncoding=UTF-8
    username: dolphinscheduler
    password: dolphinscheduler

registry:
  type: zookeeper
  zookeeper:
    namespace: dolphinscheduler
    connect-string: zk1:2181,zk2:2181,zk3:2181
    session-timeout: 30s
    connection-timeout: 9s
3. Worker Server配置

创建 conf/application-worker.yml

server:
  port: 1234

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://192.168.1.100:3306/dolphinscheduler?useUnicode=true&characterEncoding=UTF-8
    username: dolphinscheduler
    password: dolphinscheduler

# Worker资源配置
worker:
  groups: default
  exec-threads: 100
  heartbeat-interval: 10
  host-weight: 100
4. API Server配置

创建 conf/application-api.yml

server:
  port: 12345
  servlet:
    context-path: /dolphinscheduler

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://192.168.1.100:3306/dolphinscheduler?useUnicode=true&characterEncoding=UTF-8
    username: dolphinscheduler
    password: dolphinscheduler

# 安全配置
security:
  jwt:
    secret: dolphinscheduler123
    expiration: 24h

集群部署流程

1. 节点规划

建议的生产环境节点分配方案:

服务器IP角色配置要求
192.168.1.101API Server + Master8CPU/16GB
192.168.1.102API Server + Master8CPU/16GB
192.168.1.103Worker16CPU/32GB
192.168.1.104Worker16CPU/32GB
192.168.1.105ZooKeeper4CPU/8GB
192.168.1.106ZooKeeper4CPU/8GB
192.168.1.107ZooKeeper4CPU/8GB
2. 分步部署

第一步:在所有节点安装基础环境

# 安装JDK
yum install -y java-1.8.0-openjdk-devel

# 创建部署用户
useradd dolphinscheduler
echo "dolphinscheduler" | passwd --stdin dolphinscheduler

# 配置SSH免密登录
su - dolphinscheduler
ssh-keygen -t rsa
ssh-copy-id dolphinscheduler@192.168.1.101
ssh-copy-id dolphinscheduler@192.168.1.102
# ... 其他节点

第二步:部署ZooKeeper集群

# 下载并解压ZooKeeper
wget https://archive.apache.org/dist/zookeeper/zookeeper-3.6.3/apache-zookeeper-3.6.3-bin.tar.gz
tar -zxvf apache-zookeeper-3.6.3-bin.tar.gz -C /opt/

# 配置ZooKeeper
cd /opt/apache-zookeeper-3.6.3-bin/conf
cp zoo_sample.cfg zoo.cfg

# 修改配置
cat > zoo.cfg << EOF
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/data/zookeeper
clientPort=2181
maxClientCnxns=60
server.1=192.168.1.105:2888:3888
server.2=192.168.1.106:2888:3888
server.3=192.168.1.107:2888:3888
EOF

# 创建数据目录并启动
mkdir -p /data/zookeeper
echo "1" > /data/zookeeper/myid  # 在105节点
echo "2" > /data/zookeeper/myid  # 在106节点  
echo "3" > /data/zookeeper/myid  # 在107节点

./bin/zkServer.sh start

第三步:部署DolphinScheduler组件

# 在所有节点解压安装包
tar -zxvf apache-dolphinscheduler-3.1.5-bin.tar.gz -C /opt/
cd /opt/apache-dolphinscheduler-3.1.5-bin

# 配置环境变量
cat > conf/env/dolphinscheduler_env.sh << EOF
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export PATH=$JAVA_HOME/bin:$PATH
export HADOOP_HOME=/opt/hadoop
export HADOOP_CONF_DIR=/etc/hadoop/conf
export SPARK_HOME=/opt/spark
export PYTHON_HOME=/usr/bin/python3
export HIVE_HOME=/opt/hive
EOF

# 根据节点角色修改配置
# Master节点配置
cp conf/application-master.yml.template conf/application-master.yml
# Worker节点配置  
cp conf/application-worker.yml.template conf/application-worker.yml
# API节点配置
cp conf/application-api.yml.template conf/application-api.yml

第四步:启动集群服务

# 在Master节点启动服务

🔥【免费下载链接】dolphinscheduler Apache DolphinScheduler is the modern data orchestration platform. Agile to create high performance workflow with low-code 🔥【免费下载链接】dolphinscheduler 项目地址: https://gitcode.com/gh_mirrors/do/dolphinscheduler

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

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

抵扣说明:

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

余额充值