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.1
,myid
文件内容应为 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