dolphinscheduler – 低代码高性能工作流程的免费开源数据编排平台

Apache DolphinScheduler 是一款现代化的数据编排平台,能够以低代码的方式灵活创建高性能工作流。它还提供了强大的用户界面,专注于解决数据管道中复杂的任务依赖关系,并且开箱即用地提供各种类型的作业。

file

特性

  • 快速部署,灵活选择:支持单机、集群、Docker、Kubernetes 四种部署方式。

  • 低代码易用性:通过 Web UI、Python SDK、Yaml 和 Open API 创建和管理工作流。

  • 去中心化架构,保障可靠性:多主多工作节点,支持横向扩展,保障高可靠性和高可用性。

  • 领先的性能表现:较其他平台性能高出数倍,每天支持数千万任务执行。

  • 云原生与多云支持:可在多云或数据中心环境下编排工作流,支持自定义任务类型。

  • 全面的版本与状态管理:支持工作流和实例的版本控制,提供灵活的状态控制,包括暂停、停止和恢复。

  • 多租户与权限管理:内置多租户支持和细粒度的权限管理功能。

使用 Docker 启动 DolphinScheduler 的指南

DolphinScheduler 提供了三种使用 Docker 启动服务的方式:

  1. Standalone-server:适合初学者快速体验 DolphinScheduler 的功能。
  2. docker-compose:适用于日常工作中需要在小型或中型规模工作流中部署 DolphinScheduler 的用户。
  3. 使用已有的 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 并使用默认用户名和密码 admindolphinscheduler123 来登录 DolphinScheduler 的 Web UI。

注意:如果您使用现有的 PostgreSQL 和 ZooKeeper 并在多台机器上启动服务,需将 URL 域名从 localhost 更改为 API 服务器运行的 IP 或主机名。

file

更改环境变量

在通过 Docker 启动服务器时,您可以通过修改环境变量来更改配置。我们在使用现有的 PostgreSQL 和 ZooKeeper 时已经展示了如何更改数据库和 ZooKeeper 的配置。您可以在所有环境变量中找到所有配置项并根据需要进行更改。

官方链接

Comments

No comments yet. Why don’t you start the discussion?

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注