Apache DolphinScheduler 是一款现代化的数据编排平台,能够以低代码的方式灵活创建高性能工作流。它还提供了强大的用户界面,专注于解决数据管道中复杂的任务依赖关系,并且开箱即用地提供各种类型的作业。
特性
-
快速部署,灵活选择:支持单机、集群、Docker、Kubernetes 四种部署方式。
-
低代码易用性:通过 Web UI、Python SDK、Yaml 和 Open API 创建和管理工作流。
-
去中心化架构,保障可靠性:多主多工作节点,支持横向扩展,保障高可靠性和高可用性。
-
领先的性能表现:较其他平台性能高出数倍,每天支持数千万任务执行。
-
云原生与多云支持:可在多云或数据中心环境下编排工作流,支持自定义任务类型。
-
全面的版本与状态管理:支持工作流和实例的版本控制,提供灵活的状态控制,包括暂停、停止和恢复。
-
多租户与权限管理:内置多租户支持和细粒度的权限管理功能。
使用 Docker 启动 DolphinScheduler 的指南
DolphinScheduler 提供了三种使用 Docker 启动服务的方式:
- Standalone-server:适合初学者快速体验 DolphinScheduler 的功能。
- docker-compose:适用于日常工作中需要在小型或中型规模工作流中部署 DolphinScheduler 的用户。
- 使用已有的 PostgreSQL 和 ZooKeeper 服务器:适合想要重用已有数据库或 ZooKeeper 服务器的用户。
准备工作
- Docker:版本需为 1.13.1 及以上。
- Docker Compose:版本需为 1.28.0 及以上。
启动服务器
使用 Standalone-server Docker 映像启动
通过 Standalone-server Docker 映像启动 DolphinScheduler 是体验和探索它的最简单方式。在这种方式下,您可以以最小的成本了解 DolphinScheduler 的概念和用法。
$ DOLPHINSCHEDULER_VERSION=3.1.5
$ docker run --name dolphinscheduler-standalone-server -p 12345:12345 -p 25333:25333 -d apache/dolphinscheduler-standalone-server:"${DOLPHINSCHEDULER_VERSION}"
注意:请勿在生产环境中使用 apache/dolphinscheduler-standalone-server
Docker 映像,因为它将所有服务运行在一个进程中,并使用 H2 作为其数据库,这将导致服务停止后元数据丢失(可以更换为其他数据库以避免此问题)。此外,该映像仅包含 DolphinScheduler 核心服务,某些任务(如 Spark 和 Flink)需要外部组件或环境支持。
使用 docker-compose 启动服务器
与 Standalone-server 不同,通过 docker-compose 启动的服务在不同的容器中运行,服务以独立进程的形式运行。更改 docker-compose 配置后,元数据可存储在磁盘上,这种方式适用于长期运行 DolphinScheduler 的用户。启动服务器前,您需要先安装 docker-compose。
建议在安装 docker-compose 后修改一些配置以获得更好的体验。我们强烈建议将 docker-compose 的可用内存增加到 4 GB。
- Mac:点击 Docker Desktop -> Preferences -> Resources -> Memory 进行修改。
- Windows Docker Desktop:
- Hyper-V 模式:点击 Docker Desktop -> Settings -> Resources -> Memory 进行修改。
- WSL 2 模式:参考 WSL 2 Utility VM 进行更多细节了解。
完成配置后,您可以从下载页面获取 docker-compose.yaml
文件及其源代码包,并确保获取正确的版本。下载后,您可以运行以下命令:
$ DOLPHINSCHEDULER_VERSION=3.1.5
$ tar -zxf apache-dolphinscheduler-"${DOLPHINSCHEDULER_VERSION}"-src.tar.gz
# 前往 docker-compose 所在目录
# 对于 Mac 或 Linux 用户
$ cd apache-dolphinscheduler-"${DOLPHINSCHEDULER_VERSION}"-src/deploy/docker
# 对于 Windows 用户,运行命令 `cd apache-dolphinscheduler-"${DOLPHINSCHEDULER_VERSION}"-src\deploy\docker`
# 初始化数据库,使用 profile schema
$ docker-compose --profile schema up -d
# 启动所有 DolphinScheduler 服务器,使用 profile all
$ docker-compose --profile all up -d
注意:通过 docker-compose 启动时,不仅会启动 DolphinScheduler 服务器,还会启动其他必要服务,如 PostgreSQL(默认用户为 root,密码为 root,数据库名为 dolphinscheduler)和 ZooKeeper。
使用已有的 PostgreSQL 和 ZooKeeper
通过 docker-compose 启动服务器会创建新的数据库和 ZooKeeper 容器。如果您想重用已有的服务,可以单独启动 DolphinScheduler 服务器。
$ DOLPHINSCHEDULER_VERSION=3.1.5
# 初始化数据库,确保数据库 <DATABASE> 已存在
$ docker run -d --name dolphinscheduler-tools \
-e DATABASE="postgresql" \
-e SPRING_DATASOURCE_URL="jdbc:postgresql://localhost:5432/<DATABASE>" \
-e SPRING_DATASOURCE_USERNAME="<USER>" \
-e SPRING_DATASOURCE_PASSWORD="<PASSWORD>" \
--net host \
apache/dolphinscheduler-tools:"${DOLPHINSCHEDULER_VERSION}" tools/bin/upgrade-schema.sh
# 启动 DolphinScheduler 服务
$ docker run -d --name dolphinscheduler-master \
-e DATABASE="postgresql" \
-e SPRING_DATASOURCE_URL="jdbc:postgresql://localhost:5432/dolphinscheduler" \
-e SPRING_DATASOURCE_USERNAME="<USER>" \
-e SPRING_DATASOURCE_PASSWORD="<PASSWORD>" \
-e REGISTRY_ZOOKEEPER_CONNECT_STRING="localhost:2181" \
--net host \
-d apache/dolphinscheduler-master:"${DOLPHINSCHEDULER_VERSION}"
$ docker run -d --name dolphinscheduler-worker \
-e DATABASE="postgresql" \
-e SPRING_DATASOURCE_URL="jdbc:postgresql://localhost:5432/dolphinscheduler" \
-e SPRING_DATASOURCE_USERNAME="<USER>" \
-e SPRING_DATASOURCE_PASSWORD="<PASSWORD>" \
-e REGISTRY_ZOOKEEPER_CONNECT_STRING="localhost:2181" \
--net host \
-d apache/dolphinscheduler-worker:"${DOLPHINSCHEDULER_VERSION}"
$ docker run -d --name dolphinscheduler-api \
-e DATABASE="postgresql" \
-e SPRING_DATASOURCE_URL="jdbc:postgresql://localhost:5432/dolphinscheduler" \
-e SPRING_DATASOURCE_USERNAME="<USER>" \
-e SPRING_DATASOURCE_PASSWORD="<PASSWORD>" \
-e REGISTRY_ZOOKEEPER_CONNECT_STRING="localhost:2181" \
--net host \
-d apache/dolphinscheduler-api:"${DOLPHINSCHEDULER_VERSION}"
$ docker run -d --name dolphinscheduler-alert-server \
-e DATABASE="postgresql" \
-e SPRING_DATASOURCE_URL="jdbc:postgresql://localhost:5432/dolphinscheduler" \
-e SPRING_DATASOURCE_USERNAME="<USER>" \
-e SPRING_DATASOURCE_PASSWORD="<PASSWORD>" \
-e REGISTRY_ZOOKEEPER_CONNECT_STRING="localhost:2181" \
--net host \
-d apache/dolphinscheduler-alert-server:"${DOLPHINSCHEDULER_VERSION}"
注意:如果您选择这种方式启动 DolphinScheduler,则需要自行安装和启动 PostgreSQL(版本需为 8.2.15 及以上)和 ZooKeeper(版本需为 3.8.0 及以上)。
登录 DolphinScheduler
您可以通过访问 http://localhost:12345/dolphinscheduler/ui 并使用默认用户名和密码 admin
和 dolphinscheduler123
来登录 DolphinScheduler 的 Web UI。
注意:如果您使用现有的 PostgreSQL 和 ZooKeeper 并在多台机器上启动服务,需将 URL 域名从 localhost 更改为 API 服务器运行的 IP 或主机名。
更改环境变量
在通过 Docker 启动服务器时,您可以通过修改环境变量来更改配置。我们在使用现有的 PostgreSQL 和 ZooKeeper 时已经展示了如何更改数据库和 ZooKeeper 的配置。您可以在所有环境变量中找到所有配置项并根据需要进行更改。