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 下载解压安装包
- 访问官网下载DolphinScheduler安装包:https://archive.apache.org/dist/dolphinscheduler/3.2.1/apache-dolphinscheduler-3.2.1-bin.tar.gz。
- 上传DolphinScheduler安装包到hadoop105节点的/opt/software目录
[jack@hadoop105 software]$ ll
总用量 378440
-rw-rw-r--. 1 jack jack 17432576 11月 13 10:41 apache-dolphinscheduler-3.2.1-bin.tar.gz
- 解压安装包到当前目录
# 解压目录并非最终的安装目录
[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元数据存储在关系型数据库中,故需创建相应的数据库和用户。
-- 创建数据库
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文件。
[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 初始化数据库
- 将mysql驱动包复制到api-server/libs和alert-server/libs和master-server/libs和worker-server/libs和tools/libs
[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/
- 完成上述步骤后,通过脚本脚本来初始化数据库
[jack@hadoop105 apache-dolphinscheduler-3.2.1-bin]$ ./tools/bin/upgrade-schema.sh
查看表内容:
3.7 配置一键部署DolphinScheduler
- 在bin/env目录创建install_env.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
- 提前启动Zookeeper集群
- 一键部署并启动DolphinScheduler
[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:
[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
4. dolphinscheduler的启停命令
DolphinScheduler的启停脚本均位于其安装目录的bin目录下。
[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 一键启停所有服务
./bin/start-all.sh
./bin/stop-all.sh
4.2 启停Master
./bin/dolphinscheduler-daemon.sh start master-server
./bin/dolphinscheduler-daemon.sh stop master-server
4.3 启停Worker
./bin/dolphinscheduler-daemon.sh start worker-server
./bin/dolphinscheduler-daemon.sh stop worker-server
4.4 启停Api
./bin/dolphinscheduler-daemon.sh start api-server
./bin/dolphinscheduler-daemon.sh stop api-server
4.5 启停Logger
./bin/dolphinscheduler-daemon.sh start logger-server
./bin/dolphinscheduler-daemon.sh stop logger-server
4.6 启停Alert
./bin/dolphinscheduler-daemon.sh start alert-server
./bin/dolphinscheduler-daemon.sh stop alert-server