概述
定义

建议配置
Linux 操作系统版本要求:
| 操作系统 | 版本 |
|---|---|
| Red Hat Enterprise Linux | 7.0 及以上 |
| CentOS | 7.0 及以上 |
| Oracle Enterprise Linux | 7.0 及以上 |
| Ubuntu LTS | 16.04 及以上 |
服务器建议配置:DolphinScheduler 支持运行在 Intel x86-64 架构的 64 位通用硬件服务器平台。对生产环境的服务器硬件配置有以下建议:
| CPU | 内存 | 硬盘类型 | 网络 | 实例数量 |
|---|---|---|---|---|
| 4核+ | 8 GB+ | SAS | 千兆网卡 | 1+ |
网络要求,DolphinScheduler正常运行提供如下的网络端口配置:
| 组件 | 默认端口 | 说明 |
|---|---|---|
| MasterServer | 5678 | 非通信端口,只需本机端口不冲突即可 |
| WorkerServer | 1234 | 非通信端口,只需本机端口不冲突即可 |
| ApiApplicationServer | 12345 | 提供后端通信端口 |
客户端 Web 浏览器要求:DolphinScheduler 推荐 Chrome 以及使用 Chromium 内核的较新版本浏览器访问前端可视化操作界面
下载
如果是简单体验 DolphinScheduler 的功能则使用Standalone方式接口,这里可以使用二进制也可以docker方式安装;如果想体验更完整的功能或者更大的任务量推荐使用伪集群部署,这里可以使用二进制也可以docker-compose方式安装;如果你是在生产中使用,推荐使用集群部署或者kubernetes;我们这里则选择更好理解其架构和组成的二进制集群部署方式。
# 下载最新版本3.0.0-beta-2,也可以选择2.0.6
wget https://dlcdn.apache.org/dolphinscheduler/3.0.0-beta-2/apache-dolphinscheduler-3.0.0-beta-2-bin.tar.gz
# 解压文件
tar -xvf apache-dolphinscheduler-3.0.0-beta-2-bin.tar.gz
部署规划
准备三台服务器安装集群,ZooKeeper和MySQL 使用之前文章已部署好的,下面前置准备工作和准备启动环境都是在三台上都要执行
前置准备工作
安装每一台服务器都准备下面的前置条件
JDK(1.8+)
数据库:PostgreSQL (8.2.15+) 或者 MySQL (5.7+),两者任选其一即可,如 MySQL 则需要 JDBC Driver 8.0.16,我们这里选择 MySQL。
注册中心:ZooKeeper (3.4.6+)
进程树分析
macOS安装
pstreeFedora/Red/Hat/CentOS/Ubuntu/Debian安装
psmisc
** yum -y install psmisc**注意: DolphinScheduler 本身不依赖 Hadoop、Hive、Spark,但如果你运行的任务需要依赖他们,就需要有对应的环境支持。
准备启动环境
配置用户免密及权限:创建部署用户,并且一定要配置
sudo
免密。以创建 dolphinscheduler 用户为例:
# 创建用户需使用 root 登录
useradd dolphinscheduler
# 添加密码
echo "dolphinscheduler" | passwd --stdin dolphinscheduler
# 配置 sudo 免密
sed -i '$adolphinscheduler ALL=(ALL) NOPASSWD: NOPASSWD: ALL' etc/sudoers
sed -i 's/Defaults requirett/#Defaults requirett/g' etc/sudoers
# 修改目录权限,使得部署用户对二进制包解压后的 apache-dolphinscheduler-*-bin 目录有操作权限
chown -R dolphinscheduler:dolphinscheduler apache-dolphinscheduler-*-bin
配置机器SSH免密登陆:由于安装的时候需要向不同机器发送资源,所以要求各台机器间能实现SSH免密登陆。配置免密登陆的步骤如下:
su dolphinscheduler
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
# 在运行install.sh机器上配置连接其他机器的免密
scp ~/.ssh/id_rsa.pub dolphinscheduler@192.168.5.53:/tmp/dolphinscheduler
scp ~/.ssh/id_rsa.pub dolphinscheduler@192.168.12.27:/tmp/dolphinscheduler
# 在192.168.5.53和192.168.12.27上执行
cat tmp/dolphinscheduler/id_rsa.pub >> ~/.ssh/authorized_keys
修改配置文件
完成基础环境的准备后,需要根据你的机器环境修改配置文件。配置文件可以在目录 bin/env
中找到,他们分别是 并命名为 install_env.sh
和 dolphinscheduler_env.sh
。
install_env.sh修改内容如下:
ips=${ips:-"192.168.5.52,192.168.5.53,192.168.12.27"}
sshPort=${sshPort:-"22"}
masters=${masters:-"192.168.5.52,192.168.5.53"}
workers=${workers:-"192.168.5.52:default,192.168.5.53:default,192.168.12.27:default"}
alertServer=${alertServer:-"192.168.5.52"}
apiServers=${apiServers:-"192.168.5.53"}
installPath=${installPath:-"/tmp/dolphinscheduler"}
deployUser=${deployUser:-"dolphinscheduler"}
zkRoot=${zkRoot:-"/dolphinscheduler"}
dolphinscheduler_env.sh
DolphinScheduler 的数据库配置。
一些任务类型外部依赖路径或库文件,如
JAVA_HOME
** 和 **SPARK_HOME
都是在这里定义的。注册中心
zookeeper
。服务端相关配置,比如缓存,时区设置等。
初始化数据库
DolphinScheduler 元数据存储在关系型数据库中,目前支持 PostgreSQL 和 MySQL,这里使用 MySQL 8.0.28则需要手动下载 mysql-connector-java 驱动(8.0.28) 并移动到 DolphinScheduler 的 lib目录下(tools/libs/
)。此外其他几个模块也都需要mysql-connector-java-8.0.28.jar
cp tools/libs/mysql-connector-java-8.0.28.jar master-server
cp tools/libs/mysql-connector-java-8.0.28.jar worker-server/libs/
cp tools/libs/mysql-connector-java-8.0.28.jar alert-server/libs/
cp tools/libs/mysql-connector-java-8.0.28.jar api-server/libs/
配置数据库和用户
mysql -uroot -p
mysql> CREATE DATABASE dolphinscheduler DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
# 修改 {user} 和 {password} 为你希望的用户名和密码
mysql> CREATE USER 'dolphinscheduler'@'%' IDENTIFIED BY 'dolphinscheduler123';
mysql> GRANT ALL PRIVILEGES ON dolphinscheduler.* TO 'dolphinscheduler'@'%';
mysql> CREATE USER 'dolphinscheduler'@'localhost' IDENTIFIED BY 'dolphinscheduler123';
mysql> GRANT ALL PRIVILEGES ON dolphinscheduler.* TO 'dolphinscheduler'@'localhost';
mysql> FLUSH PRIVILEGES;
然后修改 ./bin/env/dolphinscheduler_env.sh
,将username和password改成你在上一步中设置的用户名dolphinscheduler和密码dolphinscheduler123
export DATABASE=${DATABASE:-mysql}
export SPRING_PROFILES_ACTIVE=${DATABASE}
export SPRING_DATASOURCE_URL="jdbc:mysql://192.168.50.95:3308/dolphinscheduler?useUnicode=true&characterEncoding=UTF-8&useSSL=false&allowPublicKeyRetrieval=true"
export SPRING_DATASOURCE_USERNAME=dolphinscheduler
export SPRING_DATASOURCE_PASSWORD=dolphinscheduler123

完成上述步骤后已为 DolphinScheduler 创建一个新数据库,现在可以通过快速的 Shell 脚本来初始化数据库
sh tools/bin/upgrade-schema.sh
执行后我们查看dolphinscheduler数据库,部分表如下

启动 DolphinScheduler
使用上面创建的部署用户dolphinscheduler运行以下命令完成部署,部署后的运行日志将存放在 logs 文件夹内
sh ./bin/install.sh
查看结果已经成功启动整个集群,每一台都运行配置模块部分

浏览器访问地址 http://192.168.5.53:12345/dolphinscheduler/ui 即可登录系统UI。webUi 在org.apache.dolphinscheduler.api.ApiApplicationServer部署的机器是哪个,默认的用户名和密码是 admin/dolphinscheduler123 ,登录后进入首页,首页包含用户所有项目的任务状态统计、流程状态统计、工作流定义统计。DolphinScheduler 支持两种类型的内置主题,包括 Dark
和 Light
。当您想改变主题时,只需单击顶部控制栏在 语言 左侧名为 Dark
(or Light
) 的按钮即可。项目首页包含该项目的任务状态统计、流程状态统计、工作流定义统计。这几个指标的说明如下
任务状态统计**:在指定时间范围内,统计任务实例中状态为提交成功、正在运行、准备暂停、暂停、准备停止、停止、失败、成功、需要容错、kill、等待线程的个数**
流程状态统计**:在指定时间范围内,统计工作流实例中状态为提交成功、正在运行、准备暂停、暂停、准备停止、停止、失败、成功、需要容错、kill、等待线程的个数**
工作流定义统计**:统计用户创建的工作流定义及管理员授予该用户的工作流定义**

如果需要在某台服务器上启动所有配置的服务或者某个服务
# 一键停止集群所有服务
sh ./bin/stop-all.sh
# 一键开启集群所有服务
sh ./bin/start-all.sh
# 启停 Master
sh ./bin/dolphinscheduler-daemon.sh stop master-server
sh ./bin/dolphinscheduler-daemon.sh start master-server
# 启停 Worker
sh ./bin/dolphinscheduler-daemon.sh start worker-server
sh ./bin/dolphinscheduler-daemon.sh stop worker-server
# 启停 Api
sh ./bin/dolphinscheduler-daemon.sh start api-server
sh ./bin/dolphinscheduler-daemon.sh stop api-server
# 启停 Alert
sh ./bin/dolphinscheduler-daemon.sh start alert-server
sh ./bin/dolphinscheduler-daemon.sh stop alert-server




