集群规划
集群模式下,可配置多个 Master 及多个 Worker , 一般可配置 2~3 个 Master, 若干个 Worker
| node101 | node102 | node103 | |
|---|---|---|---|
| Master | √ | ||
| Alert | √ | ||
| ApiApplication | √ | ||
| Worker | √ | √ | √ |
| Logger | √ | √ | √ |
前置准备工作
三台节点均需部署JDK(1.8+),并配置相关环境变量
https://blog.csdn.net/qq_44226094/article/details/122685082
需部署数据库,支持MySQL(5.7+)或者 PostgreSQL(8.2.15+)
https://blog.csdn.net/qq_44226094/article/details/123361850
需部署 Zookeeper(3.4.6+)
https://blog.csdn.net/qq_44226094/article/details/123119682
各节点都安装进程树分析工具 psmisc
sudo yum install -y psmisc
解压 DolphinScheduler 安装包
上传 DolphinScheduler 安装包到 node190 节点的 /opt/software 目录
解压安装包到当前目录
tar -zxvf apache-dolphinscheduler-2.0.5-bin.tar.gz

创建元数据库及用户
DolphinScheduler 元数据存储在关系型数据库中,故需创建相应的数据库和用户
创建数据库
CREATE DATABASE dolphinscheduler DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

创建用户
CREATE USER 'dolphinscheduler'@'%' IDENTIFIED BY 'dolphinscheduler';

出现以下错误信息,表明新建用户的密码过于简单:
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
set global validate_password_policy=0;
set global validate_password_length=4;

赋予用户相应权限
GRANT ALL PRIVILEGES ON dolphinscheduler.* TO 'dolphinscheduler'@'%';
flush privileges;

配置一键部署脚本
修改解压目录下的 conf/config 目录下的 install_config.conf 文件
vim conf/config/install_config.conf
修改内容 :
# 将要部署任一 DolphinScheduler 服务的服务器主机名或 ip 列表
ips="node182,node189,node190,node196"
# master 所在主机名列表,必须是 ips 的子集
masters="node190"
# worker 主机名及队列,此处的 ip 必须在 ips 列表中
workers="node182:defalut,node189:default,node190:default,node196:default"
# 告警服务所在服务器主机名
alertServer="node190"
# api 服务所在服务器主机名
apiServers="node190"
# 不需要的配置项,可以保留默认值,也可以用 # 注释
# pythonGatewayServers="ds1"
# DS 安装路径,如果不存在会创建
installPath="/opt/module/dolphinscheduler-2.0.5"
# 部署用户,任务执行服务是以 sudo -u {linux-user} 切换不同 Linux 用户的方式来实现多租户运行作业,因此该用户必须有免密的 sudo 权限
deployUser="hdfs"
# 前文配置的所有节点的本地数据存储路径,需要确保部署用户拥有该目录的读写权限
dataBasedirPath="/tmp/dolphinscheduler"
# JAVA_HOME 路径
javaHome="/app/hadoop/jdk1.8.0_271"
# 注意:数据库相关配置的 value 必须加引号,否则配置无法生效
# 数据库类型
DATABASE_TYPE="mysql"
# 数据库 URL
SPRING_DATASOURCE_URL="jdbc:mysql://node190:3306/dolphinscheduler?useUnicode=true&characterEncoding=UTF-8"
# 数据库用户名
SPRING_DATASOURCE_USERNAME="dolphinscheduler"
# 数据库密码
SPRING_DATASOURCE_PASSWORD="dolphinscheduler"
# 注册中心插件名称, DS 通过注册中心来确保集群配置的一致性
registryPluginName="zookeeper"
# 注册中心地址,即 Zookeeper 集群的地址
registryServers="node181:2181,node182:2181,node183:2181"
# DS 在 Zookeeper 的结点名称
registryNamespace="dolphinscheduler"
# 资源存储类型
resourceStorageType="HDFS"
# 资源上传路径
resourceUploadPath="/dolphinscheduler"
# core-site.xml and hdfs-site.xml 放在 conf
# 默认文件系统
defaultFS="hdfs://powercluster"
# yarn RM http 访问端口
resourceManagerHttpAddressPort="8088"
# Yarn RM 高可用 ip,若未启用 RM 高可用,则将该值置空
yarnHaIps=node181,node182
# Yarn RM 主机名,若启用了 HA 或未启用 RM,保留默认值
singleYarnIp=
# 拥有 HDFS 根目录操作权限的用户
hdfsRootUser="hdfs"
复制配置文件 :
cp /app/hadoop/hadoop-3.1.2/etc/hadoop/core-site.xml /opt/software/apache-dolphinscheduler-2.0.5-bin/conf/
cp /app/hadoop/hadoop-3.1.2/etc/hadoop/hdfs-site.xml /opt/software/apache-dolphinscheduler-2.0.5-bin/conf/

初始化数据库
拷贝 MySQL 驱动到 DolphinScheduler 的解压目录下的 lib 中,要求使用 MySQL JDBC Driver 8.0.16
cp /opt/software/mysql-connector-java-8.0.16.jar /opt/software/apache-dolphinscheduler-2.0.5-bin/lib/
执行数据库初始化脚本
数据库初始化脚本位于 DolphinScheduler 解压目录下的 script 目录中 , 即 /opt/software/apache-dolphinscheduler-2.0.5-bin/script/
./create-dolphinscheduler.sh

部署 DolphinScheduler
启动 Zookeeper 集群
zk.sh start
部署并启动 DolphinScheduler
./install.sh

查看 DolphinScheduler 进程
jps -l | grep dol

访问 DolphinScheduler UI
DolphinScheduler UI 地址为 http://node190:12345/dolphinscheduler
- 初始用户的用户名:
admin - 密码 :
dolphinscheduler123

DolphinScheduler 启停命令
DolphinScheduler 的启停脚本均位于其安装目录的 bin 目录下
一键启停所有服务
./bin/start-all.sh
./bin/stop-all.sh
注意 : 同 Hadoop 的启停脚本进行区分
启停 Master
./bin/dolphinscheduler-daemon.sh start master-server
./bin/dolphinscheduler-daemon.sh stop master-server
启停 Worker
./bin/dolphinscheduler-daemon.sh start worker-server
./bin/dolphinscheduler-daemon.sh stop worker-server
启停 Api
./bin/dolphinscheduler-daemon.sh start api-server
./bin/dolphinscheduler-daemon.sh stop api-server
启停 Logger
./bin/dolphinscheduler-daemon.sh start logger-server
./bin/dolphinscheduler-daemon.sh stop logger-server
启停 Alert
./bin/dolphinscheduler-daemon.sh start alert-server
./bin/dolphinscheduler-daemon.sh stop alert-server
