1、ZooKeeper的概述:
ZooKeeper是一款分布式应用程序的协调框架,是大数据应用的重要组件。
ZooKeeper主要解决了分布式环境下的数据统一性、分布式环境下的统一命名服务、分布式环境下的配置管理、分布式环境下的分布式锁、集群管理问题。
单机模式配置:
2、环境准备:
- 虚拟机系统:CentOS-7。
- JDK:JDK1.8.0_171。
- 关闭防火墙、配置好机器静态IP。
3、下载:
https://zookeeper.apache.org/releases.html官网进行下载安装包、自行选择版本下载。这里我选择 ZooKeeper-3.4.7的版本。
4、安装配置:
- 在/usr/local的目录下、使用mkdir命令创建存放ZooKeeper安装包的文件夹。
mkdir zookeeper
- 使用ftp工具将刚才下好的ZooKeeper安装包上传到刚才创建好的zookeeper目录下。
- 上传完成后、使用ls命令查看目录下是否上传成功。
ls
- 使用tar命令解压安装包。
tar -zxvf zookeeper-3.4.7.tar.gz
- 解压完成后。目录下会多出一个名字为zookeeper-3.4.7的文件夹。
- 进到zookeeper-3.4.7/conf/目录下配置zoo.cfg文件。首先我们看到在此目录下,并没有我说的zoo.cfg文件。但是有一个zoo_sample.cfg文件。这个其实就是zoo.cfg的样本文件,所以我们可以复制一份这个文件重名为我们想要的zoo.cfg文件来进行配置。使用cp命令进行复制。
cp zoo_sample.cfg zoo.cfg
- 复制完成后,使用vi命令进行编辑zoo.cfg这个文件。
vi zoo.cfg
- 进到编辑器后,先按下i可以进行文本编辑。随后我们找到dataDir=/tmp/zookeeper这行配置。将这行配置修改为dataDir=/usr/local/zookeeper/zookeeper-3.4.7/tmp。这行配置是说要将ZooKeeper的数据存放目录在哪,默认是在/tmp下面。但是在系统tmp下是很不安全的,所以我们手动改为自己想要的目录下。
9.修改完成后,先按下esc。在输入:wq!强制保存并退出vi编辑器。至此、我们zookeeper的单机模式就配置成功了。然后我们测试一下,进到bin目录下启动一下zookeeper的服务和客户端。
./zkServer.sh start 是启动命令
输入jps查看进程是否启动成功。出现QuorumPeerMain代表启动成功。
然后我们可以在启动zookeeper的客户端进行一些zookeeper的命令操作。
出现这个代表成功进入zookeeper客户端。
集群模式配置:
说到集群、那肯定是多台机器了。而zookeeper的集群机制决定了它的集群数量限制在奇数台上。所以这里,我们需要准备三台虚拟机,算上刚才配置好的单机,在配置两台就可以。这两台集群我们也都把环境准备好。
5、集群配置:
- 我们先将运行的zookeeper客户端和服务停掉。
在zookeeper客户端命令窗口中输入quit即可退出。 在bin目录下./zkServer.sh stop停掉zookeeper服务。
- 服务停掉以后,修改conf目录下的那个zoo.cfg文件。
- 在zoo.cfg最后一行加上如下配置:server.编号=主机IP地址:2888:3888。这里注意,首先编号一定不要相同,这个编号后面集群配置要用到,其次这个IP地址一定要是你想当作zookeeper服务的IP地址,最好都配好了静态IP地址。
server.1=192.168.186.141:2888:3888 server.2=192.168.186.142:2888:3888 server.3=192.168.186.143:2888:3888
- 创建myid文件并修改内容、myid文件创建在zoo.cfg配置的dataDir目录下。将myid内容修改为1。这个1是跟你刚才配置的server.1的数字相同。你也可以写成2或3。但是要记住,你这个用了2或3其他机器就不能再用。数字唯一。
cd ../tmp 进入tmp目录下。 touch myid 创建名为myid的文件。 vi myid 编辑。
- 使用tar命令打包zookeeper文件夹,将东西分发给其他两台机器更快。
tar -zcvf zookeeper.tar.gz zookeeper/ 将zookeeper文件夹打包。
- 使用scp命令远程传输打包好的压缩包分发给另外两台机器。
scp -r zookeeper.tar.gz [email protected]:/usr/local/ scp -r zookeeper.tar.gz [email protected]:/usr/local/
- 切换到另外两台机器,分别解压传输过来的压缩包。解压命令还是使用tar解压。解压完成后分别修改myid文件,这里我将142机器的myid修改为2。143的机器修改为3。
tar -zxvf zookeeper.tar.gz 解压传输过来的压缩包。 cd zookeeper/zookeeper-3.4.7/tmp/ 进入tmp目录 vi myid 修改myid
- 全部修改完成后,集群配置就已经完成了。接下来我们测试配置是否正确。分别在三台机器下使用启动命令,如是按照顺序启动三台机器。那么第二台机器就是leader,其他两台就是follower。这跟zookeeper的选举机制有关。
不会配置机器静态IP的小伙伴们,可以查看我另一篇博客。 Centos7配置静态IP地址:https://blog.csdn.net/qq_37481017/article/details/82965542./zkServer.sh start 分别在三台机器bin目录下使用此命令。 ./zkServer.sh status 查看每台机器的状态。