版本 zookeeper-3.4.8
下载
zookeeper-3.4.8.tar.gz
通过SFTP上传到master
解压
tar -zxvf zookeeper-3.4.8.tar.gz -C /home/dummy/app
配置环境变量 vi ~/.bash_profile
source ~/.bash_profile
分发去另外两台机, 再source ~/.bash_profile
注:每次修改环境变量,都要source ~/.bash_profile
修改配置文件
cd conf/
ls
1、vi zoo.cfg
在最后添加
(主机名, 心跳端口、数据端口)
保存退出
2、cd ..返回上一级目录创建文件夹 data和logs 对应上面的dataDir和dataLogDir
mkdir data
mkdir logs
cd data
在data目录下新建myid文件
vi myid
输入1,保存退出
3、将zookeeper分发到另外两台机
scp -r zookeeper-3.4.8/ dummu@slave01:/home/dummy/app/
scp -r zookeeper-3.4.8/ dummu@slave02:/home/dummy/app/
4、修改另外两台机的myid文件 (每台机myid不要相等,大于0)
到slave01上:修改myid为:2
到slave02上:修改myid为:3
启动zookeeper(每台机都启动)
zkServer.sh start
查看集群状态
1、jps查看进程
每台集群都有QuorumPeerMain 进程
2、 zkServer.sh status(查看集群状态,主从信息)
master:
slave01:
slave02:
为什么slave02的myid比slave01的myid大,却是follower呢?
原因是我启动zookeeper的顺序是 master 、slave01 、slave02
启动完成master 、slave01时,就已经开始选举,myid大的为leader
到启动slave02时,leader已经选举出来了,就不在选举,所以slave02只能是follower
要是在slave01上 kill掉QuorumPeerMain进程或者执行 zkServer.sh stop
这时leader没了,需要在master和slave02之间进行重新选举,
自然,slave02的myid大,成为了leader,这时再启动slave01,成为follower