前面的文章种介绍了如何下载安装已经启动ZK。这篇文章将告诉你如何使用你已经下载好的zk搭建一个如下图示的集群。
如下图,集群将包含一个leader2个follower一个Observer。
Leader将接受写请求,其他所有节点都可以接受读请求。一旦leader挂了会自动选举一个节点来当leader。
在存数据的目录种创建4个目录zk1,zk2,zk3,zk4, 分别在这四个文件中写入内容1,2,3,4用来当作每台server的id号。
[allen@localhost ~]$ cd packages/
[allen@localhost packages]$ cd apache-zookeeper-3.5.8-bin/
[allen@localhost apache-zookeeper-3.5.8-bin]$ ls
bin conf docs lib LICENSE.txt logs NOTICE.txt README.md README_packaging.txt zoo.cfg
[allen@localhost apache-zookeeper-3.5.8-bin]$ mkdir data
[allen@localhost apache-zookeeper-3.5.8-bin]$ cd data/
[allen@localhost data]$ ls
[allen@localhost data]$ mkdir zk1 zk2 zk3 zk4
[allen@localhost data]$ echo 1 > zk1/myid
[allen@localhost data]$ echo 2 > zk2/myid
[allen@localhost data]$ echo 3 > zk3/myid
[allen@localhost data]$ echo 4 > zk4/myid
拷贝4分conf文件出来,每个server各一个配置文件,启动的时候用得到。
[allen@localhost conf]$ cd /home/allen/packages/apache-zookeeper-3.5.8-bin/conf
[allen@localhost conf]$ cp zoo_sample.cfg zoo1.cfg
[allen@localhost conf]$ cp zoo1.cfg zoo2.cfg
[allen@localhost conf]$ cp zoo1.cfg zoo3.cfg
[allen@localhost conf]$ cp zoo1.cfg zoo4.cfg
[allen@localhost conf]$ vi zoo1.cfg
[allen@localhost conf]$ vi zoo2.cfg
[allen@localhost conf]$ vi zoo3.cfg
[allen@localhost conf]$ vi zoo4.cfg
分别写改这4个配置文件,
修改 dataDir个子用自己的数据地址
修改clientPort,因为我这里只有一太server,所以用不同 的端口模拟不同的server,所有需要修改端口号。
server.1到最后的信息都一样, 四台用相同的信息。
启动每个服务,将四个服务都启动起来, 并使用jps命令来查看启动动的进程。
注意如果jps不能使用,可以用下面的方法重装JDK, jps是基于JDK的命令。
[root@namenode ~]# yum list *openjdk-devel*
[root@localhost conf]# yum list *openjdk-devel*
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: ftp.sjtu.edu.cn
* extras: ftp.sjtu.edu.cn
* updates: ftp.sjtu.edu.cn
Installed Packages
java-1.8.0-openjdk-devel.x86_64 1:1.8.0.282.b08-1.el7_9 @updates
Available Packages
java-1.6.0-openjdk-devel.x86_64 1:1.6.0.41-1.13.13.1.el7_3 base
java-1.7.0-openjdk-devel.x86_64 1:1.7.0.261-2.6.22.2.el7_8 base
java-1.8.0-openjdk-devel.i686 1:1.8.0.282.b08-1.el7_9 updates
java-11-openjdk-devel.i686 1:11.0.10.0.9-1.el7_9 updates
java-11-openjdk-devel.x86_64 1:11.0.10.0.9-1.el7_9 updates
[root@localhost conf]#
[root@namenode ~]# yum install java-1.8.0-openjdk-devel.x86_64
查看每台server各种的角色
./bin/zkServer.sh status conf/zoo1.cfg
通过自带客户端连接集群:
./bin/zkCli.sh -server 192.168.0.101:2181,192.168.0.101:2182,192.168.0.101:2183,192.168.0.101:2184