ZooKeeper 搭建详细步骤之三(真集群)
ZooKeeper 搭建详细步骤之二(伪集群模式)
ZooKeeper 搭建详细步骤之一(单机模式)
ZooKeeper 及相关概念简介
伪集群搭建
ZooKeeper 伪集群是指在一个单一的物理或虚拟机环境中模拟出一个由多个 ZooKeeper 节点构成的集群。尽管这些节点实际上运行在同一台机器上,但它们通过配置不同的端口、数据目录和配置文件,以模拟在真实分布式环境下不同服务器上运行的效果。
伪集群的主要目的是便于开发、测试和学习 ZooKeeper 集群的功能和行为,而不必消耗大量的硬件资源来部署多台独立的物理服务器。
以下是搭建 ZooKeeper 伪集群的一般步骤:
准备工作
-
环境要求:
- 安装了 Java 运行环境(JRE 或 JDK),确保版本符合 ZooKeeper 的兼容性要求。
- 下载并解压 ZooKeeper 的官方发行包到本地目录。
-
目录结构:
为每个 ZooKeeper 节点创建独立的数据目录和日志目录,例如:
zk_node1_data zk_node1_log zk_node2_data zk_node2_log zk_node3_data zk_node3_log # 也可以让数据和日志存放同一个目录,这样只需要三个目录即可 zk1 zk2 zk3
-
创建 myid 文件
- 在每个节点的数据目录下创建一个名为
myid
的文本文件 - 其中仅包含一行,写入对应的节点编号(1、2、3)。
- 在每个节点的数据目录下创建一个名为
-
配置文件:
-
对于每个节点,复制 ZooKeeper 原始发行包中的
conf/zoo.cfg
文件,为每个节点创建对应的配置文件,如:zoo1.cfg zoo2.cfg zoo3.cfg
-
在这些配置文件中设置以下关键参数:
-
dataDir
: 指定对应节点的数据目录。 -
clientPort
: 分配不同的端口号给每个节点,如 2181、2281、2381。 -
server.x
:-
x
是节点编号,从 1 开始递增。 -
格式为
server.x=localhost:y:z
,其中localhost
表示本机地址,y
是用于内部通信的选举端口(如 2888 和 3888),z
是数据同步端口(通常与选举端口相差 1000,如 3888 和 4888)。 -
示例:
server.1=127.0.0.1:2888:3888 server.2=127.0.0.1:4888:5888 server.3=127.0.0.1:6888:7888
-
-
-
启动集群
-
启动节点:
-
使用如下命令启动每个节点,指定各自的配置文件:
bin/zkServer.sh start conf/zooX.cfg
-
其中
X
应替换为实际节点编号(1、2、3)。
-
验证与管理
-
检查状态:
-
使用
zkCli.sh
工具连接任意一个节点的客户端端口,检查集群状态:bin/zkCli.sh -server localhost:2181
-
在 CLI 中执行
stat
或ls /
-