部署高可用zookeeper集群
本文为单机部署3个zookeeper实例
下载安装包
在云服务器上下载一个安装包,可以直接下载,也可以先下载到本地,再通过FTP等上传到云服务器。
解压
把下载的安装包解压
tar zxvf 安装包
解压好的文件挪入单独的目录里,方便操作
mv 安装包 目录
进入zookeeper目录
cd 目录
为实例设置id
在zookeeper官网的使用教程里说“When the server starts up, it knows which server it is by looking for the file myid in the data directory. That file has the contains the server number, in ASCII.”
也就是data目录下需要有一个myid文件用来记录server编号,具体步骤如下:
在目录下创建mydata文件夹
mkdir data
进入data文件夹
cd data
在mydata文件夹下创建myid文件,集群中每个zookeeper实例通过读取此文件确定自己的id
touch myid
在myid文件中输入id
echo "1">>myid
更改配置文件
进入conf目录,添加主配置文件zoo.cfg,并更改其中的内容
cd conf/ cp zoo_sample.cfg zoo.cfg vi zoo.cfg
编辑配置文件内容。“If you want to test multiple servers on a single machine, specify the servername as localhost with unique quorum & leader election ports (i.e. 2888:3888, 2889:3889, 2890:3890 in the example above) for each server.X in that servers config file. Of course separate _dataDir_s and distinct _clientPort_s are also necessary (in the above replicated example, running on a single localhost, you would still have three config files).”根据官网的提示,配置文件需要修改的部分有server列表、dataDir(data目录的位置)、clientPort(端口)。 如下
注意:此图中的server.2与server.3尚未配置。
至此,一个实例server.1的配置完成了。把此目录复制两份。
cp -r 目录 目录1 cp -r 目录 目录2
分别更改两个实例的/data/myid文件与/conf/zoo.cfg文件
启动zookeeper
分别进入三个zookeeper实例的bin目录下,运行
./zkServer.sh start
查看集群状态
利用下面的指令,在bin目录中查看节点状态
./zkServer.sh status
分析三个节点状态,发现server3和server1是follower,server2是leader