💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、豆包、星火、月之暗面及文生图、文生视频 广告
## 一、环境准备 zookeeper官网下载地址:[http://mirror.bit.edu.cn/apache/zookeeper/stable/](http://mirror.bit.edu.cn/apache/zookeeper/stable/)。一定要注意从3.5.5开始,带有bin名称的包才是我们想要的下载可以直接使用的里面有编译后的二进制的包,而之前版本的普通的tar.gz的包里面是只是源码的包无法直接使用。 ![](https://img.kancloud.cn/35/14/3514591959bee3af977ee4b589878f8c_713x226.png) 安装JDK:由于zookeeper集群的运行需要Java运行环境,所以需要首先安装 JDK | 主机名称 | 主机ip | | --- | --- | | peer1 | 192.168.161.3 | | peer2 | 192.168.161.4 | | peer3 | 192.168.161.5 | ## 二、安装 zookeeper ### 2.1.解压 在 /usr/local 目录下新建 software 目录,然后将 zookeeper 压缩文件上传到该目录中,然后通过如下命令解压。 ~~~ mkdir -p /opt/zookeeper; #创建zookeeper目录 mkdir -p /opt/zookeeper/data; #创建zookeeper数据存放目录 mkdir -p /opt/zookeeper/log; #创建zookeeper日志存放目录 tar -zxvf apache-zookeeper-3.5.7-bin.tar.gz -C /opt/zookeeper #将zookeeper解压到-C指定的目录 ~~~ 这里我用的是zookeeper最新的stable版本3.5.7,根据你自己的下载版本及安装包调整上面的命令。 ### 2.2.修改配置文件 zoo.cfg 将zookeeper压缩文件解压后,我们进入到`apache-zookeeper-3.5.7/conf`目录: ![](https://img.kancloud.cn/e7/2a/e72a60a6a3c39b1c1d8f3e6248adc939_654x92.png) 将 zoo\_sample.cfg 文件复制并重命名为 zoo.cfg 文件。 ~~~ cp /opt/zookeeper/apache-zookeeper-3.5.7-bin/conf/zoo_sample.cfg /opt/zookeeper/apache-zookeeper-3.5.7-bin/conf/zoo.cfg ~~~ 然后通过 vim zoo.cfg 命令对该文件进行修改: ~~~ vim /opt/zookeeper/apache-zookeeper-3.5.7-bin/conf/zoo.cfg ~~~ ![](https://img.kancloud.cn/ea/83/ea8309e7d7a4772e49d58f3b8b09fde3_625x332.png) 上面红色框住的内容即是我们修改的内容,蓝色框是我们新增的内容: * tickTime:基本事件单元,这个时间是作为Zookeeper服务器之间或客户端与服务器之间维持心跳的时间间隔,每隔tickTime时间就会发送一个心跳;最小 的session过期时间为2倍tickTime * dataDir:存储内存中数据快照的位置,除非另有说明,否则指向数据库更新的事务日志。注意:应该谨慎的选择日志存放的位置,使用专用的日志存储设备能够大大提高系统的性能,如果将日志存储在比较繁忙的存储设备上,那么将会很大程度上影像系统性能。 * clientPort:监听客户端连接的端口。 * initLimit:允许follower连接并同步到Leader的初始化连接时间,以tickTime为单位。当初始化连接时间超过该值,则表示连接失败。 * syncLimit:表示Leader与Follower之间发送消息时,请求和应答时间长度。如果follower在设置时间内不能与leader通信,那么此follower将会被丢弃。 * server.A=B:C:D * A:其中 A 是一个数字,表示这个是服务器的编号id; * B:是这个服务器的 ip 地址; * C: Leader选举的端口; * D: Zookeeper服务器之间的通信端口。 我们需要修改的第一个是 dataDir ,在指定的位置处创建好目录。 第二个需要新增的是 server.A=B:C:D 配置,其中 A 对应下面我们即将介绍的myid 文件。B是集群的各个IP地址,C:D 是端口配置。 ### 2.3.创建 myid 文件 在 上一步 dataDir 指定的目录下,创建 myid 文件。然后在该文件添加上一步 server 配置的对应 A 数字,服务器的编号id。 ~~~ touch /opt/zookeeper/data/myid; #创建文件 echo "0" > /opt/zookeeper/data/myid; #写入id ~~~ 上面的命令是在192.168.161.3上面执行的,所以写入的id为0。后面的机器依次在相应目录创建myid文件,写上相应配置数字即可。 ### 2.4.配置环境变量 为了能够在任意目录启动zookeeper集群,我们需要配置环境变量。 > 你也可以不配,这不是搭建集群的必要操作,只不过如果你不配置环境变量,那么每次启动zookeeper需要到安装文件的 bin 目录下去启动。 首先进入到 /etc/profile 目录,添加相应的配置信息: ~~~ #set zookeeper environment export ZK_HOME=/opt/zookeeper/apache-zookeeper-3.5.7-bin export PATH=$PATH:$ZK_HOME/bin ~~~ 然后通过如下命令使得环境变量生效: ~~~ source /etc/profile ~~~ ### 2.5.开启防火墙端口 ~~~ firewall-cmd --zone=public --add-port=2181/tcp --permanent; firewall-cmd --zone=public --add-port=2888/tcp --permanent; firewall-cmd --zone=public --add-port=3888/tcp --permanent; firewall-cmd --reload ~~~ ### 2.6.启动zookeeper服务 启动命令: ~~~ zkServer.sh start ~~~ ![](https://img.kancloud.cn/35/3e/353e3ecde2817196fa753239b490b224_843x80.png) 停止命令: ~~~ zkServer.sh stop ~~~ 重启命令: ~~~ zkServer.sh restart ~~~ 查看集群节点状态: ~~~ zkServer.sh status ~~~ 我们分别对集群三台主机执行状态查看命令,其中一台是leader,其他两台是follwer。 ![](https://img.kancloud.cn/0b/1f/0b1fa9e059a33593f9b030ea195e3299_836x97.png) 出现上面的状态,基本可以认定,我们的集群安装是成功的。启动日志可以通过如下的文件查看: ![](https://img.kancloud.cn/40/11/4011016544a2fd352dac95b28e19e937_840x57.png) 启动日志中会有一些异常,如果是防火墙端口已经正确打开,通常是因为启动顺序的原因导致的,无关紧要。A连接B,B还没启动,所以抛出“拒绝连接”异常。等B启动了就好了。 ![](https://img.kancloud.cn/56/84/5684ff4c7dc696f7269db73f581afa73_1131x222.png)