Skip to content

DolphinScheduler部署

1. 软硬件环境要求

1.1操作系统版本要求

操作系统版本
Red Hat Enterprise Linux7.0 及以上
CentOS7.0 及以上
Oracle Enterprise Linux7.0 及以上
Ubuntu LTS16.04 及以上

1.2 服务器硬件要求

CPU内存硬盘类型网络实例数量
4核+8 GB+SAS千兆网卡1+

2. 部署模式

DolphinScheduler支持多种部署模式,包括单机模式(Standalone)、伪集群模式(Pseudo-Cluster)、集群模式(Cluster)、Kubernetes部署等。

2.1 单机模式

单机模式(standalone)模式下,所有服务均集中于一个StandaloneServer进程中,并且其中内置了注册中心Zookeeper和数据库H2。只需配置JDK环境,就可一键启动DolphinScheduler,快速体验其功能。

2.2 伪集群模式

伪集群模式(Pseudo-Cluster)是在单台机器部署DolphinScheduler各项服务,该模式下master、worker、api server、logger server等服务都只在同一台机器上。Zookeeper和数据库需单独安装并进行相应配置。

2.3 集群模式

集群模式(Cluster)与伪集群模式的区别就是在多台机器部署 DolphinScheduler各项服务,并且Master、Worker等服务可配置多个。

3. 集群模式部署

3.1 集群规划

服务器角色
hadoop105master、worker
hadoop103worker
hadoop104worker

3.2 前置准备工作

(1)三台节点均需部署JDK(1.8+),并配置相关环境变量。
(2)需部署数据库,支持MySQL(5.7+)或者PostgreSQL(8.2.15+)。
(3)需部署Zookeeper(3.4.6+)。
(4)三台节点均需安装进程树分析工具psmisc(sudo yum install -y psmisc)。

3.3 下载解压安装包

  1. 访问官网下载DolphinScheduler安装包:https://archive.apache.org/dist/dolphinscheduler/3.2.1/apache-dolphinscheduler-3.2.1-bin.tar.gz。
  2. 上传DolphinScheduler安装包到hadoop105节点的/opt/software目录
sh
[jack@hadoop105 software]$ ll
总用量 378440
-rw-rw-r--. 1 jack jack  17432576 11月 13 10:41 apache-dolphinscheduler-3.2.1-bin.tar.gz
  1. 解压安装包到当前目录
sh
# 解压目录并非最终的安装目录
[jack@hadoop105 software]$ tar -zxvf apache-dolphinscheduler-3.2.1-bin.tar.gz
[jack@hadoop105 apache-dolphinscheduler-3.2.1-bin]$ ll
总用量 208
drwxr-xr-x. 5 jack jack  4096 2月  18 2022 alert-server
drwxr-xr-x. 6 jack jack  4096 2月  18 2022 api-server
drwxr-xr-x. 3 jack jack  4096 2月  18 2022 bin
-rw-r--r--. 1 jack jack 71628 2月  18 2022 LICENSE
drwxr-xr-x. 4 jack jack 24576 11月 13 14:16 licenses
drwxr-xr-x. 5 jack jack  4096 2月  18 2022 master-server
-rw-r--r--. 1 jack jack 82742 2月  18 2022 NOTICE
drwxr-xr-x. 6 jack jack  4096 2月  18 2022 standalone-server
drwxr-xr-x. 6 jack jack  4096 2月  18 2022 tools
drwxr-xr-x. 5 jack jack  4096 2月  18 2022 worker-server

3.4 创建元数据库及用户

DolphinScheduler元数据存储在关系型数据库中,故需创建相应的数据库和用户。

sql
-- 创建数据库
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;

3.5 修改配置文件

dolphinscheduler_env.sh文件包含环境和数据库配置。修改解压目录下的bin/env/dolphinscheduler_env.sh文件。

sh
[dolphinscheduler@hadoop105 ~]$ cd /opt/software/apache-dolphinscheduler-3.2.1-bin/bin
[dolphinscheduler@hadoop105 bin]$ vim dolphinscheduler_env.sh
# 修改JAVA_HOME
export JAVA_HOME="/opt/module/jdk1.8.0_391"

# 修改数据库连接信息
export DATABASE="mysql"
export SPRING_PROFILES_ACTIVE=${DATABASE}
export SPRING_DATASOURCE_URL="jdbc:mysql://hadoop105:3306/dolphinscheduler?useUnicode=true&allowPublicKeyRetrieval=true&characterEncoding=UTF-8&useSSL=false"
export SPRING_DATASOURCE_USERNAME="dolphinscheduler"
export SPRING_DATASOURCE_PASSWORD="dolphinscheduler"
# 修改zookeep连接地址
export REGISTRY_TYPE="zookeeper"
export REGISTRY_ZOOKEEPER_CONNECT_STRING="192.168.101.105:2181"

3.6 初始化数据库

  1. 将mysql驱动包复制到api-server/libs和alert-server/libs和master-server/libs和worker-server/libs和tools/libs
sh
[jack@hadoop105 software]$ cp mysql-connector-java-8.0.28.jar ./apache-dolphinscheduler-3.2.1-bin/api-server/libs/
[jack@hadoop105 software]$ cp mysql-connector-java-8.0.28.jar ./apache-dolphinscheduler-3.2.1-bin/alert-server/libs/
[jack@hadoop105 software]$ cp mysql-connector-java-8.0.28.jar ./apache-dolphinscheduler-3.2.1-bin/master-server/libs/
[jack@hadoop105 software]$ cp mysql-connector-java-8.0.28.jar ./apache-dolphinscheduler-3.2.1-bin/worker-server/libs/
[jack@hadoop105 software]$ cp mysql-connector-java-8.0.28.jar ./apache-dolphinscheduler-3.2.1-bin/tools/libs/
  1. 完成上述步骤后,通过脚本脚本来初始化数据库
sh
[jack@hadoop105 apache-dolphinscheduler-3.2.1-bin]$ ./tools/bin/upgrade-schema.sh

查看表内容:
Alt text

3.7 配置一键部署DolphinScheduler

  1. 在bin/env目录创建install_env.sh文件
sh
[jack@hadoop105 apache-dolphinscheduler-3.2.1-bin]$ vim ./bin/env/install_env.sh
# 配置如下内容
# 将要部署任一DolphinScheduler服务的服务器主机名或ip列表
ips="hadoop105,hadoop103,hadoop104" 
# ssh端口号
sshPort="22"
# master 所在主机名列表,必须是ips的子集
masters="hadoop105" 
# worker主机名及队列,此处的ip必须在ips列表中
workers="hadoop105:default,hadoop103:default,hadoop104:default" 
# 告警服务所在服务器主机名
alertServer="hadoop105"
# api服务所在服务器主机名
apiServers="hadoop105"
# 不需要的配置项,可以保留默认值,也可以用 # 注释
# pythonGatewayServers="ds1" 
# DS 安装路径,如果不存在会创建
installPath="/opt/module/dolphinscheduler"
# 部署用户,任务执行服务是以sudo -u {linux-user} 切换不同Linux用户的方式来实现多租户运行作业,因此该用户必须有免密的sudo权限。
deployUser="jack"
# 前文配置的所有节点的本地数据存储路径,需要确保部署用户拥有该目录的读写权限
dataBasedirPath="/opt/module/dolphinscheduler/data"
# JAVA_HOME 路径
javaHome="/opt/module/jdk1.8.0_391"
# apiServer的端口
apiServerPort="12345"
# 数据库类型
DATABASE_TYPE="mysql"
# 数据库 URL
SPRING_DATASOURCE_URL="jdbc:mysql://hadoop105:3306/dolphinscheduler?useUnicode=true&allowPublicKeyRetrieval=true&characterEncoding=UTF-8"
# 数据库用户名
SPRING_DATASOURCE_USERNAME="dolphinscheduler"
# 数据库密码
SPRING_DATASOURCE_PASSWORD="dolphinscheduler"
# 注册中心插件名称,DS 通过注册中心来确保集群配置的一致性
registryPluginName="zookeeper"
# 注册中心地址,即 Zookeeper 集群的地址
registryServers="hadoop102:2181,hadoop103:2181,hadoop104:2181"
# DS 在 Zookeeper 的结点名称
registryNamespace="dolphinscheduler"
# Worker Task Server plugin dir. DolphinScheduler will find and load the worker task plugin jar package from this dir.
taskPluginDir="lib/plugin/task"
# 资源存储类型
resourceStorageType="HDFS"	
# 资源上传路径
resourceUploadPath="/dolphinscheduler"
# 默认文件系统
defaultFS="hdfs://hadoop102:8020"
# yarn RM http 访问端口
resourceManagerHttpAddressPort="8088"
# Yarn RM 高可用 ip,若未启用 RM 高可用,则将该值置空
yarnHaIps=
#Yarn RM主机名,若启用了HA或未启用RM,保留默认值
singleYarnIp="hadoop103"
#拥有HDFS根目录操作权限的用户
hdfsRootUser="jack"
# kerberos config
kerberosStartUp="false"
# use sudo or not
sudoEnable="true"
# worker tenant auto create
workerTenantAutoCreate="false"

3.8 启动DolphinScheduler

  1. 提前启动Zookeeper集群
  2. 一键部署并启动DolphinScheduler
sh
[jack@hadoop102 apache-dolphinscheduler-2.0.5-bin]$ ./install.sh
1.create directory
2.scp resources
hadoop105:default
hadoop103:default
hadoop104:default
.......
====================== dolphinscheduler server status =============================
node server state

hadoop105  Begin status master-server......
master-server  [  RUNNING  ]
End status master-server.
hadoop105  Begin status worker-server......
worker-server  [  RUNNING  ]
End status worker-server.
hadoop103  Begin status worker-server......
worker-server  [  RUNNING  ]
End status worker-server.
hadoop104  Begin status worker-server......
worker-server  [  RUNNING  ]
End status worker-server.
hadoop105  Begin status alert-server......
alert-server  [  RUNNING  ]
End status alert-server.
hadoop105  Begin status api-server......
api-server  [  RUNNING  ]
End status api-server.

安装完毕后查看opt/module下可以看到安装完成的dolphinscheduler:

sh
[jack@hadoop105 module]$ ll
总用量 40
drwxrwxr-x.  3 jack jack 4096 11月  9 14:01 app
drwxr-xr-x.  8 jack jack 4096 11月 13 14:37 dolphinscheduler
drwxrwxr-x.  9 jack jack 4096 11月  9 07:54 flume-1.11.0
drwxr-xr-x. 12 jack jack 4096 11月 10 05:13 hadoop-3.3.6
drwxrwxr-x. 12 jack jack 4096 11月 10 05:27 hive-4.0.1
drwxrwxr-x.  8 jack jack 4096 11月  8 00:22 jdk1.8.0_391
drwxr-xr-x.  9 jack jack 4096 11月  8 00:36 kafka-3.6.2
drwxr-xr-x. 13 jack jack 4096 11月 10 05:00 spark-3.4.2
drwxr-xr-x.  5 jack jack 4096 8月   6 17:07 tez-0.10.4
drwxrwxr-x.  8 jack jack 4096 11月  8 00:25 zookeeper-3.8.4

3.9 访问dolphinscheduler

DolphinScheduler UI地址为http://hadoop105:12345/dolphinscheduler
初始用户的用户名为:admin,密码为 dolphinscheduler123
Alt text

4. dolphinscheduler的启停命令

DolphinScheduler的启停脚本均位于其安装目录的bin目录下。

sh
[jack@hadoop105 bin]$ ll
总用量 36
-rwxr-xr-x. 1 jack jack 4513 11月 13 14:36 dolphinscheduler-daemon.sh
drwxr-xr-x. 2 jack jack 4096 11月 13 14:36 env
-rwxr-xr-x. 1 jack jack 2102 11月 13 14:36 install.sh
-rwxr-xr-x. 1 jack jack 1795 11月 13 14:36 remove-zk-node.sh
-rwxr-xr-x. 1 jack jack 2257 11月 13 14:36 scp-hosts.sh
-rwxr-xr-x. 1 jack jack 2008 11月 13 14:36 start-all.sh
-rwxr-xr-x. 1 jack jack 2808 11月 13 14:36 status-all.sh
-rwxr-xr-x. 1 jack jack 1912 11月 13 14:36 stop-all.sh

4.1 一键启停所有服务

sh
./bin/start-all.sh
./bin/stop-all.sh

4.2 启停Master

sh
./bin/dolphinscheduler-daemon.sh start master-server
./bin/dolphinscheduler-daemon.sh stop master-server

4.3 启停Worker

sh
./bin/dolphinscheduler-daemon.sh start worker-server
./bin/dolphinscheduler-daemon.sh stop worker-server

4.4 启停Api

sh
./bin/dolphinscheduler-daemon.sh start api-server
./bin/dolphinscheduler-daemon.sh stop api-server

4.5 启停Logger

sh
./bin/dolphinscheduler-daemon.sh start logger-server
./bin/dolphinscheduler-daemon.sh stop logger-server

4.6 启停Alert

sh
./bin/dolphinscheduler-daemon.sh start alert-server
./bin/dolphinscheduler-daemon.sh stop alert-server