首页 纸飞机账号购买内容详情

小白版 | Apache DolphinScheduler 本地启动指南

2026-04-05 6 纸飞机账号购买

作者 | 智业软件 张晓宁

此文针对那些期望于本地开展阅读以及调试 DolphinScheduler 核心源码的开发者,示例环境涵盖 Windows,还有 IntelliJ IDEA,以及 Docker Desktop,另外还有 PostgreSQL,再和 ZooKeeper。

要是你仅仅是打算迅速去体验功能,并非调试master、worker以及api的完整链路,那么优先选用StandaloneServer。要是你期望调试分布式调度主链路,那就依照本文采用拆分服务的方式来启动。

此场景环境的适用条件要求,于当前仓库根目录下的 pom.xml 里边,所规定的 java.version 是 1.8 ,此外,针对本地调试而言,建议优先选用 JDK 8 或者 11。并且,要启动 PostgreSQL 和 ZooKeeper。

先进入 deploy/docker 目录。

cd 某盘:\dolphinscheduler\deploy\docker

要是你直接去用附录里头的 docker-compose-windows.yml,那得先去确认一下 dolphinscheduler-zookeeper 有没有把 2181 端口给暴露出来。master、worker、api 都是默认去连接 localhost:2181 的,要是 ZooKeeper 仅仅运行在容器内部而没有映射到宿主机上,那么在 IDEA 里启动的 Java 进程就会连接失败。

需保证,docker-compose-windows.yml里的dolphinscheduler-zookeeper服务,涵盖如下配置:

dolphinscheduler-zookeeper:
  image: zookeeper:3.8
  ports:
    - "2181:2181"

然后启动 PostgreSQL 和 ZooKeeper:

docker-compose -f docker-compose-windows.yml up -d dolphinscheduler-postgresql dolphinscheduler-zookeeper

可选验证命令:

docker ps
Test-NetConnection 127.0.0.1 -Port 5432
Test-NetConnection localhost -Port 2181

预期结果:

要是你运用的是在本机或者远程服务器上所安装的PostgreSQL或者ZooKeeper,并非Docker,那就能够跳过这一步,不过得保证后续配置里的地址、端口、用户名以及密码跟你本机环境协调一致喔。

2. 编译项目

在仓库根目录执行:

cd 某盘:\dolphinscheduler
.\mvnw.cmd spotless:apply
.\mvnw.cmd clean install -DskipTests

说明:

3. 初始化 PostgreSQL 元数据库

运维人员在 master 和 api 启动之前,DolphinScheduler 的元数据库表必然得先进行初始化操作。现今仓库里的 PostgreSQL 初始化脚本来处在一个具体位置,这个位置位于:

海豚调度器数据访问对象源文件中,主资源目录下的SQL文件夹里,名为海豚调度器PostgreSQL数据库的SQL文件。

也就是:

某盘,目录里有个文件路径,是这样的,\dolphinscheduler,接着是\dolphinscheduler - dao,再接着是\src,然后是\main,跟着又是\resources,之后是\sql,最后是dolphinscheduler_postgresql.sql。

倘若你所运用的是Docker里头的PostgreSQL,那么能够直接于PowerShell里予以执行:

Get-Content -Path .\dolphinscheduler-dao\src\main\resources\sql\dolphinscheduler_postgresql.sql -Raw |
  docker exec -i -e PGPASSWORD=root docker-dolphinscheduler-postgresql-1 psql -U root -d dolphinscheduler

也能够运用 DataGrip,或者 DBeaver ,亦或是 psql 以手动方式去执行完整的 SQL 文件。

需要留意,这份 SQL 当中含有 DROP TABLE IF EXISTS,它会对元数据库表进行重建。请不要在那种已经存有重要数据的数据库上径直去执行。

初始化完成后,可以执行以下 SQL 验证:

select version from t_ds_version;

预期结果是返回一条版本记录,例如 3.4.0。

4. 核对本地配置

现下仓库已然默认运用PostgreSQL以及ZooKeeper,于本地要是采用以下这般默认值,一般而言无需额外去更改配置,标点符号!

相关配置文件:

如果你的本地依赖不是以上默认值,再修改这些配置项:

若你选用PostgreSQL,那就别在IDEA的VM Options里头继续带着 -Dspring.profiles.active=mysql。要是你非得明确指定profile,那就这么用:

-Dspring.profiles.active=postgresql

5. 配置 IntelliJ IDEA 启动项

每个启动项都建议统一配置如下:

向类路径添加具有“已提供”范围的依赖项很关键,当不勾选时,在启动阶段容易出现类找不到的情况,或者出现依赖缺失的问题。

建议创建以下三个启动项:

MasterServer

默认监听端口:

WorkerServer

默认监听端口:

ApiApplicationServer

默认监听端口:

启动顺序建议如下:

主服务器工作服务器应用程序服务器,主服务器工作服务器应用程序服务器,主服务器工作服务器应用程序服务器。

可按照需求启动AlertServer,只有在你需要对告警链路进行调试的情况下,才将它单独启动。

6. 启动前端

在仓库根目录执行:

cd 某盘:\dolphinscheduler\dolphinscheduler-ui
pnpm install
pnpm run dev

启动完成后,前端默认访问地址为:

http://localhost:5173

默认账号密码:

7. 启动成功后的验证方式验证 API

浏览器访问:

预期结果:

验证前端

浏览器访问:

能够正常打开登录页并完成登录,说明前后端联调基本打通。

验证日志

在IDEA当中,着重去观察各个服务控制台输出所呈现给我们的情况,是不是出现了那种会带来严重后果的异常现象。

8. 经常出现的问题1. MasterServer开启失败,日志给出提示,zookeeper连接失败至:本地主机的2181端口。

原因通常有两个:

排查方式:

Test-NetConnection localhost -Port 2181

要是连接出现失败状况,首先去查验在 docker-compose-windows.yml 里边,是不是针对 dolphinscheduler-zookeeper做好了如下配置:

ports:
  - "2181:2181"

2. ApiApplicationServer开启失败,日志给出提示,relation"t_ds_version" 不存在。

这表明,PostgreSQL元数据库尚未进行初始化,又可理解为,初始化误选了数据库地址,以至于初始化到了错误的数据库。

处理方式:

3. IDEA 中启动时报类找不到或依赖缺失

优先检查是否勾选了:

在类路径中添加具有“已提供”作用域的依赖项 ,作为其一部分,并且是在该特定的、规定的类路径范畴之内 ,以这种方式从而实现其相关功能。

如果没有勾选,这类问题会非常常见。

4. 启动 api 时端口 12345 被占用

排查方式:

Test-NetConnection localhost -Port 12345

如果存在进程占用那个端口,那么要先停下原本进程,之后再重新开启 IDEA 里的 ApiApplicationServer。

9. 附录

1.docker-compose-windows

# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
version: "3.8"
services:
  dolphinscheduler-postgresql:
    image: bitnami/postgresql:latest
    ports:
      - "5432:5432"
    environment:
      POSTGRESQL_USERNAME: root
      POSTGRESQL_PASSWORD: root
      POSTGRESQL_DATABASE: dolphinscheduler
    volumes:
      - dolphinscheduler-postgresql:/bitnami/postgresql
    healthcheck:
      test: ["CMD", "bash", "-c", "cat < /dev/null > /dev/tcp/127.0.0.1/5432"]
      interval: 5s
      timeout: 60s
      retries: 120
    networks:
      - dolphinscheduler
  dolphinscheduler-zookeeper:
    image: zookeeper:3.8
    ports:
      - "2181:2181"
    environment:
      ALLOW_ANONYMOUS_LOGIN: "yes"
      ZOO_4LW_COMMANDS_WHITELIST: srvr,ruok,wchs,cons
    volumes:
      - dolphinscheduler-zookeeper:/bitnami/zookeeper
    healthcheck:
      test: ["CMD", "bash", "-c", "cat < /dev/null > /dev/tcp/127.0.0.1/2181"]
      interval: 5s
      timeout: 60s
      retries: 120
    networks:
      - dolphinscheduler
networks:
  dolphinscheduler:
    driver: bridge
volumes:
  dolphinscheduler-postgresql:
  dolphinscheduler-zookeeper:

相关标签: # ApacheDolphinScheduler # 本地启动指南 # PostgreSQL # ZooKeeper # IntelliJIDEA