一、在conf的zoo.cfg文件中配置:
1、dataDir用于配置当前节点存储数据的目录(需要先创建好,zookeeper不会去创建)
2、clientPort用于指定客户端访问zookeeper时的端口(zookeeper集群的每个节点最好都要一样)
3、用server.id指定zookeeper集群中的所有节点,如果有多个节点就用server.id2、server.id3以此类推。只要保证server.后面的是多个id是唯一的就行;
(注意,集群的节点数最好是奇数,原因请看:https://blog.csdn.net/s294878304/article/details/86091776)
第一行,
server.1=weekend05:2888:3888
表示该节点的id为1,主机名为weekend05,选举leader时的通信端口为2888,leader与follow之间的通信(同步数据时)使用端口3888。
4、每个节点都像上面这样配置。
二、配置了集群的多个节点后的.cfg文件后,需要在dataDir指定的目录下创建一个myid文件,该文件的内容为该zookeeper节点的的id,这个id就是在上面第3点中配置的server.后面的id。
比如:
由上图可知,该集群有三个节点。
那么在节点1的dataDir所指定目录下,往myid文件中写入1,表示该节点的id为1;
在节点2的dataDir所指定目录下,往myid文件写入2,表示该节点的id为2;
。。。。。。。
三、启动集群
1、在每个zookeeper节点的bin目录下执行zkServer.sh start启动该节点。。。在每个节点都执行该脚本,启动所有节点。(启动的节点小于总结点数的一半时,zookeeper集群是失败的)(如果是在windows上,则是执行zkServer.cmd就行,不用加start)
2、别忘记,如果在虚拟机中配置三个节点,端口要开启。
3、执行bin目录下的zkCli.sh可以访问zookeeper集群。。然后就是使用一些zookeeper的命令操作。。也是类似于linux的命令操作目录。