软件简介
Apache ZooKeeper is an open-source server for highly reliable distributed coordination of cloud applications.2 It is a project of the Apache Software Foundation.
ZooKeeper is essentially a service for distributed systems offering a hierarchical key-value store, which is used to provide a distributed configuration service, synchronization service, and naming registry for large distributed systems (see Use cases).3 ZooKeeper was a sub-project of Hadoop but is now a top-level Apache project in its own right.
如果你想了解更多信息,可以访问软件的官网:
软件安装 安装前准备
在软件安装前,要先下载软件,可以到官网的下载页面下载软件,我们使用的软件版本是 3.6.4,请注意,选择这个版本仅是学习使用,如果要在线上环境使用,请选择非 EoL 版本。
1 2 wget https://archive.apache.org/dist/zookeeper/zookeeper-3.6.4/apache-zookeeper-3.6.4-bin.tar.gz
以上准备好之后,就可以进行软件安装了
软件安装
1 cp apache-zookeeper-3.6.4-bin.tar.gz /opt/zk
1 tar xvf apache-zookeeper-3.6.4-bin.tar.gz
1 2 cd apache-zookeeper-3.6.4-bin/confcp zoo_sample.cfg zoo.cfg
1 2 3 4 5 6 7 8 vim /etc/profile export ZK_HOME=/opt/zk/apache-zookeeper-3.6.4-binexport PATH=$ZK_HOME /bin:$PATH source |. /etc/profile
1 2 3 zkServer.sh start|stop|restart|status zkServer.sh start
以上就可以在 CentOS7 上启动 ZK 了。
ZK 集群环境搭建 对于集群环境,需要做的前置准备就是要准备三台虚拟机,现阶段给其做的规划如下表
IP 地址
ZK
192.168.32.10
ZK1
192.168.32.11
ZK2
192.168.32.12
ZK3
11,12 这两台机器是基于 10 虚拟机的镜像版本,如果这样的话,这三台虚拟机上都有 ZK 软件了,接下来的操作就是搭建集群环境了
1 2 3 4 5 6 7 8 9 10 11 12 13 14 cd /opt/zk/apache-zookeeper-3.6.4-binmkdir datacd confvim zoo.cfg dataDir=/opt/zk/apache-zookeeper-3.6.4-bin/data server.1=192.168.32.10:2888:3888 server.2=192.168.32.11:2888:3888 server.3=192.168.32.12:2888:3888
将配制好的内容分发到其他两台计算机,同时创建 data 数据目录,再在这个目录下创建一个 myid 文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 /opt/zk/apache-zookeeper-3.6.4-bin/data echo 1 > myidecho 2 > myidecho 3 > myidrm -rf /opt/zk/apache-zookeeper-3.6.4-binscp -r /opt/zk/apache-zookeeper-3.6.4-bin/ root@192.168.32.11|12:/opt/zk
1 2 3 4 5 6 systemctl start firewalld systemctl stop firewalld systemctl disable |enable firewalld
1 2 3 4 sudo firewall-cmd --zone=public --add-port=3000/tcp --permanentsudo firewall-cmd --reloadsudo firewall-cmd --remove-port=3000/tcp --permanent
验证 ZK 是否启动成功以及服务具体角色,结果是一台机器上的 ZK 角色是 leader,其他两台角色是 follower
ZK 的使用场景