ZooKeeper 环境搭建详细教程之三(真集群)

ops/2024/10/20 6:24:51/

ZooKeeper 搭建详细步骤之三(真集群)
ZooKeeper 搭建详细步骤之二(伪集群模式)
ZooKeeper 搭建详细步骤之一(单机模式)
ZooKeeper 及相关概念简介

真集群搭建

搭建 ZooKeeper 真集群涉及多个步骤,包括准备环境、配置文件设置、启动服务以及验证集群状态。

以下是一个简化的步骤指南:

前置条件

  • 准备至少三台独立的物理服务器或虚拟机,确保它们之间网络连通。
  • 在每台服务器上安装相同的 ZooKeeper 版本。

步骤一:配置 ZooKeeper 安装目录

在每台服务器上,选择一个目录作为 ZooKeeper 的安装目录,例如 /opt/zookeeper。解压 ZooKeeper 安装包并将其内容移动到此目录。

步骤二:配置 ZooKeeper 配置文件

在每台服务器上编辑 zoo.cfg 文件(通常位于安装目录的 conf 子目录下),为每个节点指定相应的配置。关键配置项包括:

  • dataDir: 指定每个节点的数据存储目录,应为服务器上的唯一路径,例如 /var/lib/zookeeper/data

  • clientPort: 指定每个节点对外提供服务的客户端连接端口,通常设为 2181。

  • server.X: 配置集群成员信息,其中 X 是一个唯一的整数标识符(如 1、2、3)。格式为 hostname:peerPort:leaderElectionPort,示例如下:

    server.1=server1.example.com:2888:3888
    server.2=server2.example.com:2888:3888
    server.3=server3.example.com:2888:3888
    
    • hostname: 对应服务器的主机名或IP地址。
    • peerPort: 用于集群内部通信的端口(默认为 2888)。
    • leaderElectionPort: 用于选举 leader 的端口(默认为 3888)。

确保在所有节点的 zoo.cfg 文件中都配置了完整的集群成员列表。

步骤三:生成 myid 文件

在每台服务器的数据目录(即 dataDir 设置的路径)下创建一个名为 myid 的文件,内容仅为一个整数,对应于 zoo.cfg 文件中 server.X 配置项中的 X。例如,对于 server.1myid 文件内容应为 1

步骤四:开放防火墙端口

确保所有服务器上的相关端口(客户端端口 2181,以及集群内部通信端口 2888 和 3888)在防火墙中开放,允许集群间通信。

步骤五:启动 ZooKeeper 服务

在每台服务器上,通过以下命令启动 ZooKeeper 服务:

cd /opt/zookeeper/bin
./zkServer.sh start

检查服务启动日志,确认无错误信息。

步骤六:验证集群状态

通过 ZooKeeper CLI 连接到任意一个节点,检查集群状态:

./zkCli.sh -server server1.example.com:2181

在 CLI 中执行 stat 命令,观察输出信息中的 Mode: 字段,确认是否有节点处于 leader 状态,其余节点应为 follower 状态。此外,还可以使用 ls / 命令查看根目录下的节点,确保所有节点数据一致。

以上就是一个基本的 ZooKeeper 真集群搭建过程。实际操作时,请根据具体的系统环境和需求进行适当的调整。确保所有节点配置正确,网络通信畅通,且能够正常加入集群并参与 leader 选举。完成搭建后,应定期检查集群健康状况,确保其持续稳定运行。

接下来我们来演示一下配置的详细过程命令,下面以三个虚拟机 node1,node2,node3 为例,安装目录/opt/apps/zookeeper

步骤举例演示

先解压并重命名
[zhang@node3 soft]$ ls
apache-flume-1.11.0-bin_.tar.gz  apache-zookeeper-3.8.4-bin_.tar.gz  jdk-8u281-linux-x64.tar.gz
apache-hive-3.1.3-bin.tar.gz     hadoop-3.2.4.tar.gz
[zhang@node3 soft]$ tar -zxvf apache-zookeeper-3.8.4-bin_.tar.gz -C /opt/apps/
# .....省略过程# 重命名
[zhang@node3 soft]$ cd /opt/apps/
[zhang@node3 apps]$ ls
apache-zookeeper-3.8.4-bin  flume  hadoop-3.2.4  hive3.1  jdk1.8.0_281  temp
[zhang@node3 apps]$ mv apache-zookeeper-3.8.4-bin/ zookeeper
[zhang@node3 apps]$ ls
flume  hadoop-3.2.4  hive3.1  jdk1.8.0_281  temp  zookeeper
修改环境变量

为了操作命令方便性,这里会配置~/bashrc 中的环境变量 path 指向 zookeeper/bin 目录

具体配置可以参考之前的单机搭建

在这里插入图片描述

修改配置文件

在 ZooKeeper 安装目录 conf 下配置 zoo.cfg 文件,三个虚拟机配置相同,内容关键配置如下:

dataDir=/opt/apps/zookeeper/zkdata
# the port at which the clients will connect
clientPort=2181
server.1=node1:2888:3888
server.2=node2:2888:3888
server.3=node3:2888:3888

具体命令:

[zhang@node3 conf]$ vim zoo.cfg  

http://www.ppmy.cn/ops/22184.html

相关文章

Java23种设计模式-结构型模式之桥接模式

桥接模式(Bridge Pattern):将抽象部分与它的实现部分分离,使它们都可以独立地变化。 通常以下角色: 角色1.抽象类(Abstraction):定义抽象接口。 角色2.扩展抽象类(Refin…

SQL基础(关系模型)

目录 SQL及定义域概念 SQL是什么 定义域 关系简介 关系的定义 关系的封闭性 关系模型简介 关系模型 谓词逻辑 运算基础 SQL的加减乘除 SQL的除法1 SQL的除法2 SQL的除法3 三值逻辑 NULL的危害 消除NULL SQL及定义域概念 SQL是什么 Structured Query Languag…

秋招后端开发面试题 - Java多线程(上)

目录 Java多线程前言面试题线程和进程?说说线程有几种创建方式?为什么调用 start() 方法时会执行 run() 方法,那怎么不直接调用 run() 方法?线程有哪些常用的调度方法?线程有几种状态?守护线程了解吗&#…

浅析扩散模型与图像生成【应用篇】(十七)——LDM

17. High-Resolution Image Synthesis with Latent Diffusion Models 该文首次提出在潜在特征空间中的扩散模型LDM,也是大名鼎鼎的Stable Diffusion(SD)模型的基础。不同于之前的扩散模型直接在图像维度上进行扩散和去噪,LDM首先训…

word 表格 文字 上下居中

问题 word 表格 文字 上下居中 详细问题 笔者进行word 文档编辑,对于表格中的文本内容,如何进行上下居中? 解决方案 步骤1、选中需要进行操作的单元格 步骤2、右键 → \rightarrow →点击表格属性 步骤3、依次点击单元格 → \rightar…

大型零售企业,适合什么样的企业邮箱大文件解决方案?

大型零售企业通常指的是在全球或特定地区内具有显著市场影响力和知名度的零售商。这些企业不仅在零售业务收入上达到了惊人的规模,而且在全球范围内拥有广泛的销售网络和实体店铺。它们在快速变化的零售行业中持续创新,通过实体店、电商平台等多种渠道吸…

如何在小程序中添加图片和视频

在微信小程序中添加图片和视频可以通过特定的组件和属性来实现。 对于添加图片&#xff0c;你可以使用<image>组件。 <view> <image src"图片链接" style"width: 375rpx; height: 375rpx;"></image> </view> 这里&…

vue 跳转页面打开浏览器新窗口或者打开新标签

vue 跳转页面打开浏览器新窗口或者打开新标签 打开浏览器新窗口方法&#xff1a; openNewWindow () {// 打开新窗口let left ((window.screen.width / 2) - 180) / 2 // 新窗口居中let width (window.screen.width / 2) 180 // 新窗口的宽度// 新窗口要设置的参数…