Zookeeper是分布式协调服务框架,很多分布式系统都会依赖它实现配置管理、服务发现等功能。今天我们就来一步步完成Zookeeper 3.4.5版本的集群安装。

环境准备
安装Zookeeper 3.4.5集群前,需要先准备以下基础环境:
- 至少3台Linux服务器,本文以3台为例,IP分别为192.168.0.101、192.168.0.102、192.168.0.103
- 每台服务器安装JDK 1.7及以上版本,Zookeeper 3.4.5依赖Java运行环境
- 服务器之间网络互通,关闭防火墙或者开放对应端口,Zookeeper默认使用2181、2888、3888端口
安装JDK
如果服务器未安装JDK,可以按照以下步骤安装:
# 检查是否已安装JDK java -version # 如果没有安装,下载JDK安装包,解压到/usr/local目录 tar -zxvf jdk-8u202-linux-x64.tar.gz -C /usr/local/ # 配置环境变量,编辑/etc/profile文件 vim /etc/profile # 在文件末尾添加以下内容 export JAVA_HOME=/usr/local/jdk1.8.0_202 export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar # 使环境变量生效 source /etc/profile # 再次验证JDK是否安装成功 java -version
安装Zookeeper 3.4.5
下载和解压安装包
在每台服务器上执行以下操作,下载Zookeeper 3.4.5安装包并解压:
# 下载安装包,也可以提前下载后上传到服务器 wget https://ipipp.com/dist/zookeeper/zookeeper-3.4.5/zookeeper-3.4.5.tar.gz # 解压到/usr/local目录 tar -zxvf zookeeper-3.4.5.tar.gz -C /usr/local/ # 创建软链接方便后续操作 ln -s /usr/local/zookeeper-3.4.5 /usr/local/zookeeper
修改配置文件
进入Zookeeper的conf目录,复制模板配置文件为zoo.cfg:
cd /usr/local/zookeeper/conf cp zoo_sample.cfg zoo.cfg
编辑zoo.cfg文件,修改和添加以下配置:
# 数据目录,需要提前创建 dataDir=/usr/local/zookeeper/data # 客户端连接端口 clientPort=2181 # 集群节点配置,格式为server.id=主机IP:集群内部通信端口:选举端口 server.1=192.168.0.101:2888:3888 server.2=192.168.0.102:2888:3888 server.3=192.168.0.103:2888:3888
在每台服务器的dataDir目录下创建myid文件,内容为该节点对应的id,比如192.168.0.101服务器的myid文件内容为1:
# 创建数据目录 mkdir -p /usr/local/zookeeper/data # 192.168.0.101服务器执行 echo 1 > /usr/local/zookeeper/data/myid # 192.168.0.102服务器执行 echo 2 > /usr/local/zookeeper/data/myid # 192.168.0.103服务器执行 echo 3 > /usr/local/zookeeper/data/myid
启动和验证集群
启动Zookeeper服务
在每台服务器上执行启动命令:
cd /usr/local/zookeeper bin/zkServer.sh start
查看节点状态
启动完成后,可以查看每个节点的状态,确认集群是否正常运行:
bin/zkServer.sh status
正常情况下,3个节点中会有一个leader节点,另外两个是follower节点,输出类似以下内容:
JMX enabled by default Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg Mode: leader
测试集群连接
可以使用Zookeeper自带的客户端连接集群,测试是否正常提供服务:
bin/zkCli.sh -server 192.168.0.101:2181
连接成功后,可以执行简单的创建节点、查看节点操作验证功能:
# 创建测试节点 create /test "hello_zookeeper" # 查看节点数据 get /test
常见问题解决
- 如果启动后节点状态显示Error contacting service,首先检查防火墙是否关闭,端口是否开放,然后检查myid文件内容和zoo.cfg中的节点配置是否对应
- 如果JDK版本过低,启动时会报错,需要升级到JDK 1.7及以上版本
- 如果集群节点无法选举出leader,检查服务器时间是否同步,时间差过大会导致选举失败
到这里,Zookeeper 3.4.5集群就安装完成了,后续可以根据项目需求进行相关配置和使用。