DolphinScheduler部署

1. 软硬件环境要求

1.1操作系统版本要求

操作系统 版本
Red Hat Enterprise Linux 7.0 及以上
CentOS 7.0 及以上
Oracle Enterprise Linux 7.0 及以上
Ubuntu LTS 16.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 集群规划

服务器 角色
hadoop105 master、worker
hadoop103 worker
hadoop104 worker

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

评论