ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

DolphinScheduler 部署

DolphinScheduler 部署

说明

DolphinScheduler 是一款大数据开发工具,可以完成多源异构数据源数据的接入、清洗、处理。

官网(https://dolphinscheduler.apache.org/zh-cn)简介如下:

Apache DolphinScheduler 是一个分布式易扩展的可视化 DAG
工作流任务调度开源系统。适用于企业级场景,提供了一个可视化操作任务、工作流和全生命周期数据处理过程的解决方案。

Apache DolphinScheduler 旨在解决复杂的大数据任务依赖关系,并为应用程序提供数据和各种 OPS 编排中的关系。
解决数据研发 ETL 依赖错综复杂,无法监控任务健康状态的问题。 DolphinScheduler 以 DAG(Directed Acyclic
Graph,DAG)流式方式组装任务,可以及时监控任务的执行状态,支持重试、指定节点恢复失败、暂停、恢复、终止任务等操作。

本文介绍 DolphinScheduler 的部署,以 3.4.3 版本为例。

二进制文件

二进制文件部署较为麻烦,按如下操作。

(一)下载程序

访问官网(https://dolphinscheduler.apache.org/zh-cn/download/3.4.3),下载对应版本的程序包。

如下,可在右侧列表切换版本。

下载完成。

(二)配置环境

DolphinScheduler 需要有 Java 和数据库环境,不外接数据库会使用内置的 H2 数据库,但重启后数据会删除。

这里我用外接的 MySQL(8.0.18)数据库,敲下面的命令创建一个 MySQL 容器。

dockerrun-d\--namemysql\-p3306:3306\-eMYSQL_ROOT_PASSWORD=123456\mysql:8.0.18

Java 环境(DolphinScheduler-3.4.3 版本,使用 JDK11 或 17)参考下面这篇博客部署,这里不再赘述。

  • CentOS安装JDK-17

如下。

(三)下载驱动

去 Maven 中央仓库,下载一个 8.0.33 版本的 MySQL 连接驱动,后面要放到 DolphinScheduler 目录里。

地址:https://mvnrepository.com/artifact/com.mysql/mysql-connector-j/8.0.33

点这个。

下载完成。

(四)解压部署

将前面的程序包,上传到服务器,解压。

tar-xvfapache-dolphinscheduler-3.4.3-bin.tar.gz

如下。

把上一步的数据库连接驱动也上传到服务器。

敲下面的命令,将驱动分发到指定目录,并创建软链接。

cpmysql-connector-j-8.0.33.jar apache-dolphinscheduler-3.4.3-bin/standalone-server/libs/cpmysql-connector-j-8.0.33.jar apache-dolphinscheduler-3.4.3-bin/libs/cdapache-dolphinscheduler-3.4.3-bin/tools/libsln-s../../libs/mysql-connector-j-8.0.33.jar mysql-connector-j-8.0.33.jar

如下。

为啥子要创建一个软链接?因为 DolphinScheduler 里面的 Jar 都是这么用的,咱们也适配它来用,准没错。

(五)更改配置

需要更改两处配置。

vimbin/env/dolphinscheduler_env.sh

追加以下配置,指定 JDK 路径与 MySQL 的配置信息,更改成自己实际的。保存退出。

export JAVA_HOME=/usr/local/dev/jdk-17.0.17 export DATABASE=mysql export SPRING_PROFILES_ACTIVE=${DATABASE}export SPRING_DATASOURCE_URL="jdbc:mysql://localhost:3306/dolphinscheduler?useUnicode=true&characterEncoding=UTF-8&useSSL=false"export SPRING_DATASOURCE_USERNAME=root export SPRING_DATASOURCE_PASSWORD=123456

第二处是这里。

vimstandalone-server/conf/application.yaml

滚动到最下面,看 MySQL 数据库的连接配置,更改成自己实际的(我只改了个密码,默认的密码改成自己实际的)。保存退出。

(六)数据库初始化

用工具连接数据库,执行下面的 SQL,创建数据库。

CREATEDATABASEdolphinschedulerDEFAULTCHARACTERSETutf8mb4COLLATEutf8mb4_general_ci;

回到服务器,执行下面的脚本,完成数据库表的初始化。

bashtools/bin/upgrade-schema.sh

如果数据库配置没问题的话,如下,会哐哐哐都跑完。

(七)启动

敲下面的命令,启动 DolphinScheduler。

bash./bin/dolphinscheduler-daemon.sh start standalone-server

注意目录层级,如下。

查看状态。

bash./bin/dolphinscheduler-daemon.sh status standalone-server

如下。

浏览器访问:http://<服务器IP>:12345/dolphinscheduler/ui,输入默认账号密码(admin/dolphinscheduler123)登录。

登录成功。

另外

可以把启动、停止、查看状态程序,注册到系统服务中,用systemctl命令管理,方便后面设置开机自启动。

敲下面的命令,在指定目录下创建一个服务文件。

vim/etc/systemd/system/dolphinscheduler.service

内容如下,路径更换成自己实际的。保存退出。

[Unit] Description=Apache DolphinScheduler Standalone After=network.target [Service] Type=forking User=root WorkingDirectory=/home/dolphinscheduler/apache-dolphinscheduler-3.4.3-bin ExecStart=/home/dolphinscheduler/apache-dolphinscheduler-3.4.3-bin/bin/dolphinscheduler-daemon.sh start standalone-server ExecStop=/home/dolphinscheduler/apache-dolphinscheduler-3.4.3-bin/bin/dolphinscheduler-daemon.sh stop standalone-server RemainAfterExit=yes [Install] WantedBy=multi-user.target

敲下面的命令,刷新系统服务。

systemctl daemon-reload

启动 DolphinScheduler,查看状态。

systemctl start dolphinscheduler systemctl status dolphinscheduler

如下。

Docker

(一)拉镜像

Docker 部署非常方便,先敲下面的命令拉取镜像。

docker pull apache/dolphinscheduler-standalone-server:3.4.3

如下,有点大(1.8 G),泡杯咖啡等一等(配篇川端康成的短篇《篝火》)。

(二)跑容器

敲下面的命令,启动容器。

docker run--name dolphinscheduler-standalone-server-p 12345:12345-p 25333:25333-d apache/dolphinscheduler-standalone-server:3.4.3

如下。

(三)访问页面

浏览器输入 http://localhost:12345/dolphinscheduler/ui,访问页面,输入默认账号密码(admin/dolphinscheduler123)登录。

如下。

登录成功。

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进