前言
上一章我们讲了zookeeper中的一些基本概念,这一章,我们来实操一下,进行zookeeper伪集群模式环境的搭建。
zookeeper的搭建方式
zookeeper安装方式有三种,单机模式、集群模式和伪集群模式。
- 单机模式:zookeeper只运行在一台服务器上,适合测试环境;
- 集群模式:zookeeper运行于一个集群上,适合生产环境,这个计算机集群被称为一个“集合体”
- 伪集群模式:就是在一台服务器上运行多个zookeeper实例;
这里我们演示zookeeper伪集群模式的搭建步骤。
环境:
- CentOS Linux release 7.5.1804 (Core)
- zookeeper-3.6.1
- jdk 1.8.0_262
下载
前往官网下载zookeeper-3.6.1
创建目录/data/software
mkdir /data/software
上传
下载完成后,将zookeeper压缩包apache-zookeeper-3.6.1-bin.tar.gz上传到linux系统/data/software目录下。
解压压缩包
cd /data/software
tar -zxvf apache-zookeeper-3.6.1-bin.tar.gz
###由于文件夹名字过长 mv改变文件夹名字
mv apache-zookeeper-3.6.1-bin apache-zookeeper-3.6.1
重命名zoo_sample.cfg
cd apache-zookeeper-3.6.1/config
mv zoo_sample.cfg zoo.cfg
创建zookeeper存储路径
cd ../
mkdir data
创建日志存储路径
mkdir dataLogs
编辑zoo.cfg
vim zoo.cfg
- 修改数据存储路径
- 修改日志存储路径
- 添加伪集群配置,下图中2881,2882,2883是集群通信端口,3881,3882,3883是选举端口
创建myid文件
cd ../data
touch myid
修改myid内容
myid相当于当前实例在伪集群中的编号
vim myid
修改myid内容为1
复制解压后的文件夹
由于是伪集群模式,所以我们在当前服务器上部署3个zookeeper实例
cp -r apache-zookeeper-3.6.1 apache-zookeeper02
cp -r apache-zookeeper-3.6.1 apache-zookeeper03
修改复制后两个文件夹下conf/zoo.cfg,修改内容主要是数据存储路径和日志路径,还有myid的值
apache-zookeeper02对应的数据存储路径:/data/software/apache-zookeeper02/data
apache-zookeeper02对应的日志路径:/data/software/apache-zookeeper02/dataLogs
apache-zookeeper03对应的数据存储路径:/data/software/apache-zookeeper02/data
apache-zookeeper03对应的日志路径:/data/software/apache-zookeeper02/dataLogs
apache-zookeeper02对应的myid内容2
apache-zookeeper03对应的myid内容3
至此,配置完成,依次启动三个节点即可:
cd /data/software/apache-zookeeper-3.6.1/bin
./zkServer.sh start
cd /data/software/apache-zookeeper02/bin
./zkServer.sh start
cd /data/software/apache-zookeeper03/bin
./zkServer.sh start
第一个服务启动的时候,查看日志,会报如下错误:
这是因为另外两个实例没有启动,现在集群中没有leader,所以会尝试通过选举端口来进行选举,端口不通,所以报错,只需启动另外两个实例即可。
启动完成后,我们执行如下命令:
cd /data/software/apache-zookeeper-3.6.1/bin
./zkServer.sh status
可以看到:
说明选举结束,当前节点是follower节点。
zookeeper停止命令:
cd /data/software/apache-zookeeper-3.6.1/bin
./zkServer.sh stop
小结
这一章,我们讲了zookeeper伪集群模式的搭建,已经接触到zookeeper一些简单的命令。包括:启动,停止,查看状态。下一章,我们用命令行的方式来操作一下集群,深入了解一下zookeeper的基本概念。