部署 Apache DolphinScheduler 集群在三台 CentOS 8 服务器上

部署 Apache DolphinScheduler 集群在三台 CentOS 8 服务器上涉及以下步骤:安装依赖、安装和配置 ZooKeeper、安装和配置 TiDB、安装和配置 DolphinScheduler。以下是每个步骤的详细指导:

1. 系统和网络准备

  • 确保所有服务器(192.168.0.103, 192.168.0.104, 192.168.0.105)可以互相通信。
  • 设置主机名分别为 ds-node1, ds-node2, ds-node3。
  • 在所有服务器上配置 /etc/hosts 文件,添加所有节点的 IP 和主机名映射。
bash 复制代码
192.168.0.103 ds-node1
192.168.0.104 ds-node2
192.168.0.105 ds-node3

2. 安装必要的软件

在所有节点上安装 Java、MySQL(TiDB 客户端兼容性)和其他必要的工具。

bash 复制代码
sudo dnf install java-1.8.0-openjdk mysql wget unzip net-tools

3. 安装和配置 ZooKeeper

  • 在所有节点上安装 ZooKeeper:
bash 复制代码
sudo wget https://downloads.apache.org/zookeeper/zookeeper-3.7.0/apache-zookeeper-3.7.0-bin.tar.gz
tar -xzf apache-zookeeper-3.7.0-bin.tar.gz
sudo mv apache-zookeeper-3.7.0-bin /opt/zookeeper
  • 在每个节点配置 ZooKeeper:
bash 复制代码
mkdir /opt/zookeeper/data
echo "1" > /opt/zookeeper/data/myid  # 在 ds-node1 上为 1,ds-node2 上为 2,ds-node3 上为 3
  • 编辑 /opt/zookeeper/conf/zoo.cfg
plaintext 复制代码
tickTime=2000
dataDir=/opt/zookeeper/data
clientPort=2181
initLimit=5
syncLimit=2
server.1=ds-node1:2888:3888
server.2=ds-node2:2888:3888
server.3=ds-node3:2888:3888
  • 启动 ZooKeeper 服务:
bash 复制代码
/opt/zookeeper/bin/zkServer.sh start

4. 安装和配置 TiDB

  • 在 ds-node1 上安装 TiDB:
bash 复制代码
# 下载 TiDB
wget https://download.pingcap.org/tidb-community-server-v5.0.1-linux-amd64.tar.gz
tar -xzf tidb-community-server-v5.0.1-linux-amd64.tar.gz
mv tidb-community-server-v5.0.1-linux-amd64 /opt/tidb

# 启动 TiDB
cd /opt/tidb
./bin/tidb-server

5. 安装和配置 DolphinScheduler

  • 下载并解压 DolphinScheduler 到 ds-node1:
bash 复制代码
wget https://dlcdn.apache.org/dolphinscheduler/3.2.1/apache-dolphinscheduler-3.2.1-bin.tar.gz
tar -xzf apache-dolphinscheduler-3.2.1-bin.tar.gz
mv apache-dolphinscheduler-3.2.1-bin /opt/dolphinscheduler
  • 配置 DolphinScheduler 数据库:
bash 复制代码
mysql -h 127.0.0.1 -u root -p
CREATE DATABASE dolphinscheduler DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
GRANT ALL PRIVILEGES ON dolphinscheduler.* TO 'ds_user'@'%' IDENTIFIED BY 'ds_pass';
FLUSH PRIVILEGES;
  • 修改 /opt/dolphinscheduler/conf/datasource.properties 配置数据库连接。

  • 分别在所有节点上启动 DolphinScheduler 各组件。

6. 验证集群状态

  • 访问 DolphinScheduler 的 Web 界面(默认端口:12345),登录并查看各个服务的状态。

总结

这是一个基本的安装和部署过程,实际部署可能需要根据实际网络环境和安全要求进行适当的调整。此外,生产环境中可能还需要配置额外的安全和监控措施。在部署过程中,确保逐步验证每个组件的功能,

让我详细说明如何启动和关闭ZooKeeper、TiDB和DolphinScheduler服务,这将帮助您更好地管理集群的运行状态。

启动和关闭 ZooKeeper 服务

启动 ZooKeeper:

在每个节点上,使用以下命令启动 ZooKeeper 服务:

bash 复制代码
/opt/zookeeper/bin/zkServer.sh start

验证 ZooKeeper 是否启动:

您可以使用以下命令检查 ZooKeeper 服务的状态:

bash 复制代码
/opt/zookeeper/bin/zkServer.sh status

关闭 ZooKeeper:

当需要停止 ZooKeeper 服务时,可以在每个节点上运行:

bash 复制代码
/opt/zookeeper/bin/zkServer.sh stop

启动和关闭 TiDB 服务

启动 TiDB:

在 ds-node1 上,您已下载并解压了 TiDB。可以通过执行以下命令来启动 TiDB 服务器:

bash 复制代码
cd /opt/tidb
./bin/tidb-server

这将在前台启动 TiDB 服务。为了在后台运行它,并让其持续运行,您可以使用 nohup& 将其放入后台:

bash 复制代码
nohup ./bin/tidb-server > tidb.log 2>&1 &

关闭 TiDB:

可以通过查找 TiDB 进程并使用 kill 命令来关闭 TiDB:

bash 复制代码
ps -ef | grep tidb-server
kill [pid]

启动和关闭 DolphinScheduler 服务

配置 DolphinScheduler:

在启动 DolphinScheduler 之前,您需要确保数据库配置正确。在 /opt/dolphinscheduler/conf/datasource.properties 中设置数据库连接信息:

properties 复制代码
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:4000/dolphinscheduler?useUnicode=true&characterEncoding=UTF-8
spring.datasource.username=ds_user
spring.datasource.password=ds_pass

启动 DolphinScheduler Master 服务:

在 Master 节点上(例如 ds-node1),运行以下命令启动 Master 服务:

bash 复制代码
sh /opt/dolphinscheduler/bin/dolphinscheduler-daemon.sh start master-server

启动 DolphinScheduler Worker 服务:

在每个工作节点上,运行以下命令来启动 Worker 服务:

bash 复制代码
sh /opt/dolphinscheduler/bin/dolphinscheduler-daemon.sh start worker-server

关闭 DolphinScheduler 服务:

关闭服务时,可以在相应的服务器上运行以下命令:

bash 复制代码
sh /opt/dolphinscheduler/bin/dolphinscheduler-daemon.sh stop master-server
sh /opt/dolphinscheduler/bin/dolphinscheduler-daemon.sh stop worker-server

这些命令将分别关闭 Master 和 Worker 服务。

总结

通过以上步骤,您可以有效地管理 ZooKeeper、TiDB 和 DolphinScheduler 服务的启动和关闭。确保每次修改配置或更新服务后,验证服务状态以确保系统正常运行。

相关推荐
VVVVWeiYee13 分钟前
项目2路由交换
运维·服务器·网络·网络协议·信息与通信
热爱编程的小曾1 小时前
下载Stegsolve.jar后运行报错 ”Error: Unable to access jarfile stegslove. ”
apache
小伍_Five2 小时前
透视网络世界:计算机网络习题的深度解析与总结【前3章】
服务器·网络·计算机网络
芷栀夏2 小时前
如何在任何地方随时使用本地Jupyter Notebook无需公网IP
服务器·ide·tcp/ip·jupyter·ip
G鲲鹏展翅Y2 小时前
jupyter-lab与实验室服务器远程链接
服务器·jupyter
广而不精zhu小白3 小时前
CentOS Stream 9 挂载Windows共享FTP文件夹
linux·windows·centos
LI JS@你猜啊3 小时前
Elasticsearch 集群
大数据·服务器·elasticsearch
赵大仁4 小时前
在 CentOS 7 上安装 Node.js 20 并升级 GCC、make 和 glibc
linux·运维·服务器·ide·ubuntu·centos·计算机基础
vvw&4 小时前
Docker Build 命令详解:在 Ubuntu 上构建 Docker 镜像教程
linux·运维·服务器·ubuntu·docker·容器·开源
冷冰鱼4 小时前
【问题实录】服务器ping不通win11笔记本
运维·服务器