一、准备工作
准备三台虚拟机,修改主机名,修改hosts文件,使其可以用主机名进行ping通
# 修改主机名
vi /etc/hostname
# 修改hosts文件
vi /etc/hosts
下载zookeeper的安装包: https://zookeeper.apache.org/releases.html
二、安装zookeeper
# 1.解压安装包
tar -zxvf zookeeper-...
# 2.将解压后的文件夹移动到/usr/local下
mv zookeeper-... /usr/local
# 3.修改环境变量,使其可以在控制台直接使用zookeeper的命令
vi /etc/profile
## PATH因为存在Java环境,所以需要使用:隔开
export PATH=.:${JAVA_HOME}/bin:$ZOOKEEPER_HOME/bin:$PATH
export ZOOKEEPER_HOME=/usr/local/zookeeper-3.4.12
# 4.刷新环境变量
source /etc/profile
# 5.修改zookeeper文件夹下的conf文件夹下的配置文件,因为zookeeper提供的是示例文件,所以需要复制,然后再次进行修改
cd /usr/local/zookeeper-3.4.12/conf/
cp zoo_sample.cfg zoo.cfg
vi zoo.cfg
##############zoo.cfg文件内容################
# 基本事件单元,以毫秒为单位。这个时间是作为zk服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每隔tickTime时间就会发送一个心跳
tickTime=2000
# 这个配置项是用来配置zk接受客户端初始化连接时最长能忍受多少个心跳时间间隔数,当已经超过10个心跳的时间(也就是tickTime)长度后zk服务器还没有收到客户端的返回信息,那么表明这个客户端连接失败。总的时间长度就是10*2000 = 20秒
initLimit=10
# 这个配置标识Leade与Follower之间发送消息,请求和应答时间长度,最长不能超过多少个tickTime的时间长度,总的时间长度就是5*2000=10秒
syncLimit=5
#数据存储内容
dataDir=/usr/local/zookeeper-3.4.12/data
# 这个端口就是客户端连接zk服务器的端口,zk会监听这个端口,接受客户端的访问请求
clientPort=2181
#集群节点的路径
#sever.A = B:C:D
# A表示这个是第几号服务器
# B表示的是这个服务器的ip地址
# C表示的这个服务器与集群中的Leader服务器交换信息的端口
# D表示的是万一集群中的Leader服务器挂了,需要一个端口来重新进行选举,选出一个新的Leader
server.0=hui61:2888:3888
server.1=hui62:2888:3888
server.2=hui63:2888:3888
##############zoo.cfg文件内容################
# 6.创建/usr/local/zookeeper-3.4.12/data文件夹,防止启动报错
mkdir /usr/local/zookeeper-3.4.12/data
# 7.在data文件夹下创建文件myid,用来作为节点的唯一标识
cd /usr/local/zookeeper-3.4.12/data
vi myid
#在其中输入标识,此标识应该与配置文件中集群节点的标识一致,跟server.后的标志保持一致
###hui61主机的myid文件内容###
0
###hui62主机的myid文件内容###
1
###hui63主机的myid文件内容###
2
三、启动zookeeper
注意在启动zookeeper时,要关闭各个服务器的防火墙
# 进入bin文件夹下
# 启动zk
zkServer.sh start
# 停止zk
zkServer.sh stop
# 查看zk的状态
zkServer.sh status
# 进入zk的客户端
zkCli.sh