单机

安装zookeeper之前需要安装jdk,确认jdk环境没问题之后再开始安装zookeeper
下载zookeeper压缩包,官方下载地址:https://www.apache.org/dyn/closer.cgi/zookeeper/
将zookeeper压缩包拷贝到Linux并解压

  1. # (-C 路径)可以解压到指定路径
  2. tar -zxvf apache-zookeeper-3.5.7-bin.tar.gz

在zookeeper-3.4.14 目录下,输入mkdir data创建data 文件夹。

进入conf目录, 输入,mv zoo_sample.cfg zoo.cfg 把 zoo_sample.cfg 改名为 zoo.cfg

  1. vim zoo.cfg
  2. tickTime=2000 #通信心跳时间,Zookeeper服务器与客户端心跳时间,单位毫秒
  3. initLimit=10 #Leader和Follower初始连接时能容忍的最多心跳数(tickTime的数量),这里表示为10*2s
  4. syncLimit=5 #Leader和Follower之间同步通信的超时时间,这里表示如果超过5*2s,Leader认为Follwer死掉,并从服务器列表中删除Follwer
  5. dataDir=/usr/local/zookeeper-3.5.7/data #修改,指定保存Zookeeper中的数据的目录,目录需要单独创建
  6. dataLogDir=/usr/local/zookeeper-3.5.7/logs #添加,指定存放日志的目录,目录需要单独创建
  7. clientPort=2181 #客户端连接端口
  8. # 保留多少个快照
  9. autopurge.snapRetainCount=3
  10. # 日志多少小时清理一次
  11. autopurge.purgeInterval=1

image.png
进入zookeeper解压目录下的bin文件夹,执行zookeeper相关命令

  1. # 启动zookeeper
  2. ./zkServer.sh start
  3. # 查看zookeeper状态
  4. ./zkServer.sh status
  5. # 启动zookeeper客户端
  6. ./zkCli.sh
  7. # 退出zookeeper客户端
  8. quit
  9. # 停止zookeeper
  10. ./zkServer.sh stop

集群

  • 添加集群信息 ```shell vim zoo.cfg

追加 server.1=node1:3188:3288 server.2=node2:3188:3288 server.3=node3:3188:3288

  1. ![image.png](https://cdn.nlark.com/yuque/0/2022/png/22478710/1651570269918-b4b3cf57-8e72-415b-9339-de188923b1e9.png#clientId=u897b92da-3633-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=163&id=u63ae43f4&margin=%5Bobject%20Object%5D&name=image.png&originHeight=163&originWidth=628&originalType=binary&ratio=1&rotation=0&showTitle=false&size=17058&status=done&style=none&taskId=u3165ac71-c343-4a0d-881a-a28d52fa5be&title=&width=628)<br />![image.png](https://cdn.nlark.com/yuque/0/2022/png/22478710/1651570302684-c637ef64-cb35-497e-abd9-c3aa8842fb2c.png#clientId=u897b92da-3633-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=128&id=u6711dd68&margin=%5Bobject%20Object%5D&name=image.png&originHeight=128&originWidth=842&originalType=binary&ratio=1&rotation=0&showTitle=false&size=14144&status=done&style=none&taskId=u421b8119-c791-419a-974b-825a0cbfd00&title=&width=842)
  2. ```latex
  3. server.A=B:C:D
  4. - A 是一个数字,表示这个是第几号服务器。集群模式下需要在zoo.cfg中dataDir指定的目录下
  5. 创建一个文件myid,这个文件里面有一个数据就是A的值,Zookeeper启动时读取此文件,
  6. 拿到里面的数据与zoo.cfg里面的配置信息比较从而判断到底是哪个server。
  7. - B 是这个服务器的地址。
  8. - C 是这个服务器Follower与集群中的Leader服务器交换信息的端口。
  9. - D 是万一集群中的Leader服务器挂了,需要一个端口来重新进行选举,
  10. 选出一个新的Leader,而这个端口就是用来执行选举时服务器相互通信的端口。

添加myid配置
在第一台机器的
/export/servers/zookeeper-3.4.9/zkdatas /这个路径下创建一个文件,文件名为myid ,文件内容为1

  1. echo 1 > /export/servers/zookeeper-3.4.9/zkdatas/myid

安装包分发并修改myid的值
安装包分发到其他机器
第一台机器上面执行以下两个命令

  1. scp -r /export/servers/zookeeper-3.4.9/ node02:/export/servers/
  2. scp -r /export/servers/zookeeper-3.4.9/ node03:/export/servers/

第二台机器上修改myid的值为2

  1. echo 2 > /export/servers/zookeeper-3.4.9/zkdatas/myid

第三台机器上修改myid的值为3

  1. echo 3 > /export/servers/zookeeper-3.4.9/zkdatas/myid

三台机器启动zookeeper服务
三台机器启动zookeeper服务
这个命令三台机器都要执行

  1. /export/servers/zookeeper-3.4.9/bin/zkServer.sh start

查看启动状态

  1. /export/servers/zookeeper-3.4.9/bin/zkServer.sh status

必须三台机器启动后,才能验证成功!
image.png