单机
安装zookeeper之前需要安装jdk,确认jdk环境没问题之后再开始安装zookeeper
下载zookeeper压缩包,官方下载地址:https://www.apache.org/dyn/closer.cgi/zookeeper/
将zookeeper压缩包拷贝到Linux并解压
# (-C 路径)可以解压到指定路径
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
vim zoo.cfg
tickTime=2000 #通信心跳时间,Zookeeper服务器与客户端心跳时间,单位毫秒
initLimit=10 #Leader和Follower初始连接时能容忍的最多心跳数(tickTime的数量),这里表示为10*2s
syncLimit=5 #Leader和Follower之间同步通信的超时时间,这里表示如果超过5*2s,Leader认为Follwer死掉,并从服务器列表中删除Follwer
dataDir=/usr/local/zookeeper-3.5.7/data #修改,指定保存Zookeeper中的数据的目录,目录需要单独创建
dataLogDir=/usr/local/zookeeper-3.5.7/logs #添加,指定存放日志的目录,目录需要单独创建
clientPort=2181 #客户端连接端口
# 保留多少个快照
autopurge.snapRetainCount=3
# 日志多少小时清理一次
autopurge.purgeInterval=1
进入zookeeper解压目录下的bin文件夹,执行zookeeper相关命令
# 启动zookeeper
./zkServer.sh start
# 查看zookeeper状态
./zkServer.sh status
# 启动zookeeper客户端
./zkCli.sh
# 退出zookeeper客户端
quit
# 停止zookeeper
./zkServer.sh stop
集群
- 添加集群信息 ```shell vim zoo.cfg
追加 server.1=node1:3188:3288 server.2=node2:3188:3288 server.3=node3:3188:3288
<br />
```latex
server.A=B:C:D
- A 是一个数字,表示这个是第几号服务器。集群模式下需要在zoo.cfg中dataDir指定的目录下
创建一个文件myid,这个文件里面有一个数据就是A的值,Zookeeper启动时读取此文件,
拿到里面的数据与zoo.cfg里面的配置信息比较从而判断到底是哪个server。
- B 是这个服务器的地址。
- C 是这个服务器Follower与集群中的Leader服务器交换信息的端口。
- D 是万一集群中的Leader服务器挂了,需要一个端口来重新进行选举,
选出一个新的Leader,而这个端口就是用来执行选举时服务器相互通信的端口。
添加myid配置
在第一台机器的
/export/servers/zookeeper-3.4.9/zkdatas /这个路径下创建一个文件,文件名为myid ,文件内容为1
echo 1 > /export/servers/zookeeper-3.4.9/zkdatas/myid
安装包分发并修改myid的值
安装包分发到其他机器
第一台机器上面执行以下两个命令
scp -r /export/servers/zookeeper-3.4.9/ node02:/export/servers/
scp -r /export/servers/zookeeper-3.4.9/ node03:/export/servers/
第二台机器上修改myid的值为2
echo 2 > /export/servers/zookeeper-3.4.9/zkdatas/myid
第三台机器上修改myid的值为3
echo 3 > /export/servers/zookeeper-3.4.9/zkdatas/myid
三台机器启动zookeeper服务
三台机器启动zookeeper服务
这个命令三台机器都要执行
/export/servers/zookeeper-3.4.9/bin/zkServer.sh start
查看启动状态
/export/servers/zookeeper-3.4.9/bin/zkServer.sh status
必须三台机器启动后,才能验证成功!