本文我搭建的是linux版的zookeeper集群,并非windows方式。
一、下载zookeeper
直接去Apache官网下载zookeeper,附官网地址:http://zookeeper.apache.org/,然后点击下图的download跳转去下载即可。
![](https://img.haomeiwen.com/i11783601/ec8f18562314631e.png)
二、安装zookeeper
- 1、先使用
rz
命令上传zookeeper到master机器中,再在master机器中使用下面命令把zookeeper分发到集群中的各机器。
scp -r zookeeper-3.4.14.tar.gz slave1:/usr/local
scp -r zookeeper-3.4.14.tar.gz slave2:/usr/local
scp -r zookeeper-3.4.14.tar.gz slave3:/usr/local
- 2、使用
tar -zxvf
解压命令把zookeeper解压到你想要的文件夹下 - 3、之后进入到zookeeper安装目录下的conf目录,找到
zoo_sample.cfg
,使用cp
命令复制一份zoo.cfg
文件出来,然后修改zoo.cfg
里面的某些配置,把主机服务给注册进去,4台机器都要配置。
把dataDir=/tmp/zookeeper 修改为 dataDir=/var/zookeeper
//加上集群机器的IP地址,2888是leader的端口号,3888是选举时的端口号
server.1=192.168.77.100:2888:3888
server.2=192.168.77.101:2888:3888
server.3=192.168.77.102:2888:3888
server.4=192.168.77.103:2888:3888
![](https://img.haomeiwen.com/i11783601/4edd45df2bb981f6.png)
- 4、由于上一步把dataDir的路径改了,但可能/var目录下没有zookeeper这个文件夹,所以我们可以使用
mkdir
命令新建一个zookeeper文件夹,之后就在里面新建一个myid
文件,并把刚才上面的服务编号给写进去。类似于下面截图这样,剩下机器的myid服务编号以此类推。
image.png
- 5、然后切换到zookeeper安装目录下的bin目录,执行
./zkServer.sh start
命令启动zookeeper集群,再jps查看下运行进程,如下图。image.png
- 6、之后再输入
./zkServer.sh status
命令查看zookeeper集群中的状态,可以观察到其中有一个leader,这是通过选举机制决定的。如果leader挂了,没问题,选举机制会自动再选一个leader出来。可以随便找其中一台机器执行kill -9 进程号
命令杀掉某个进程测试下这个选举leader。image.png 演示当某台机器的zookeeper服务挂了后,zookeeper集群是否重新选举leader,结果如下图,slave2机器的zookeeper服务挂了后,slave3机器的zookeeper服务被重新选举为leader了:
image.png
- 7、zookeeper集群提供服务的前提是整个集群机器剩余的数量不少于整个集群机器的二分之一,也就是说zookeeper集群挂掉某些机器对整体zookeeper集群不影响,会自动选举的。
而对于zookeeper集群的节点数量为什么要是奇数的?这篇文章可以解答。
学习参考文章:
1、报错:nohup: 无法运行命令"/usr/bin/java": 没有那个文件或目录
2、一篇文章告诉你什么是zookeeper:http://www.imooc.com/article/251135
3、别人写的zookeeper集群搭建:https://www.cnblogs.com/biehongli/p/7650570.html
网友评论