zookeeper集群

zookeeper集群

懒得配置更多虚拟机,直接一台机子开启多个zookeeper实现伪集群,和redis伪集群一样,修改个端口号即可,就可以一台服务器跑多个zookeeper。

安装配置

下载解压配置和单机的一样,只不过多了一些额外配置。

新建一个文件夹,专门放多台zookeeper。

喜欢的路径创建一个zookeepercluster目录,解压三份zookeeper的-bin.tar.gz包到该目录。

伪集群目录

按个配置每个zookeeper

创建data目录,并在data目录下创建myid文件

伪集群修改配置1

里边分别添加内容1、2、3。这个文件就是记录每个服务器的ID。

按个修改配置文件。

主要修改两个:数据存放路径和端口号

切记切记路径别有中文,不然一直提示找不到myid文件(虽然确实data目录创建并配置了)

1
2
3
4
5
6
7
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
#切记切记不能有中文,大坑
dataDir=/home/muzili/文档/apps/zookeepercluster/zookeeper3/apache-zookeeper-3.6.2-bin/data
# the port at which the clients will connect
clientPort=2183
每个配置文件配置客户端访问端口(clientPort)和集群服务器IP列表。

末尾都添加如下:

1
2
3
4
server.1=192.168.13.128:2881:3881
server.2=192.168.13.128:2882:3882
server.3=192.168.13.128:2883:3883
#server.服务器ID=服务器IP地址:服务器之间通信端口:服务器之间投票选举端口

配置以上即可。启动验证

启动成功,状态会如下:

2181状态

2182状态

2383状态

没问题的话,唯一的不美观就是,三个服务器,其第一或者第二个,由于其他的服务还没启动,日志里会报***拒绝连接,第三个服务没毛病。

问题

切记路径不能有中文,单机zookeeper可能没什么,集群的就有问题了。

即便正确配置了路径,也配置了myid,里边id也唯一。但会一直提示:

myid-miss

可以正常启动,但是查看状态时,提示如下:

status报错

权限问题,启动后,查看之前创建的data目录,除了自己创建的myid,还会有一个version-2的目录,里边有三个文件,省事直接修改所有权限即可。

1
2
#此处图了方便自己,所以自己直接设置了777,看自己需要
chmod -R 777 version-2
8080端口已经被占用:

AdminServer默认使用8080端口

原因,zookeeper3.5之后,Zookeeper AdminServer,默认使用8080端口。

配置文件添加如下内容修改为其他未被使用的端口即可:

1
admin.serverPort=8888

zookeeper集群
http://www.muzili.ren/2022/06/11/伪集群版Zookeeper搭建/
作者
jievhaha
发布于
2022年6月11日
许可协议