Zookeeper 二、Zookeeper环境搭建

Zookeeper安装方式有三种,单机模式和集群模式以及伪集群模式

  • 单机模式:Zookeeper只运行在一台服务器上,适合测试环境
  • 集群模式:Zookeeper运行于一个集群上,适合生产环境,这个计算机集群被称为一个"集合体"
  • 伪集群模式:就是在一台服务器上运行多个Zookeeper实例

1.单机模式搭建

  1. 下载

下载稳定版本的Zookeeper:

https://zookeeper.apache.org/releases.html

  1. 上传

下载完成后,将Zookeeper压缩包上传到Linux系统

  1. 解压压缩包
shell 复制代码
tar -zxvf apache-zookeeper-3.8.4.tar.gz
  1. 进入zookeeper-3.8.4 目录,创建data文件夹
shell 复制代码
cd zookeeper-3.8.4
mkdir data
  1. 修改配置文件名称
shell 复制代码
cd conf
mv zoo_sample.cfg zoo.cfg
  1. 修改zoo.cfg中的data属性
shell 复制代码
dataDir=/root/zookeeper-3.8.4/data
  1. zookeeper 服务启动

进入bin目录,启动服务输入命令

shell 复制代码
./zkServer.sh start
  1. 相关命令

关闭服务

shell 复制代码
./zkServer.sh stop

查看状态

shell 复制代码
./zkServer.sh status

2.伪集群模式

Zookeeper不但可以在单机上允许单机模式Zookeeper,而且可以在单机模拟集群模式Zookeeper的运行,也就是将不同实例运行在同一台机器,用端口进行区分,伪集群模式为我们体验Zookeeper和做一些尝试性的实验提供了很大的便利。比如,我们在测试的时候,可以先使用少量数据在伪集群模式下进行测试。当测试可行的时候,再将数据移植到集群模式进行真是的数据实验。这样不但保证了它的可行性,同时大大提高了实验的效率。这种搭建方式,比较简便,成本比较低,适合测试和学习。

【注】

一台机器上部署了3个server,也就是说单台机器及上运行多个Zookeeper实例。在这种情况下,必须保证每个配置文档的各个端口号不能冲突,除clientPort不同之外,dataDir也不同。另外,还要在dataDir所对应的目录中创建myid文件来指定对应的Zookeeper服务器实例

  • clientPort端口
    • 如果在1台机器上部署多个server,那么每台机器都要不同的clientPort,比如server1是2181,server2是2182,server3是2183
  • dataDir和dataLogDir
    • dataDir和dataLogDir也需要区分下,将数据文件和日志文件分开存放,同时每个server的这两变量所对应的路径都是不同的
  • server.X和myid
    • server.X 这个数字就是对应,data/myid 中的数字。在3个server的myid文件中分别写入了1,2,3,那么每个server中的zoo.cfg都配server.1,server.2,server.3 就行了。因为在同一台机器上,后面连着的2个端口,3个server都不要一样,否则端口冲突
  1. 下载

下载稳定版本的Zookeeper:

https://zookeeper.apache.org/releases.html

  1. 上传

下载完成后,将Zookeeper压缩包上传到Linux系统

  1. 解压压缩包

创建目录zkcluster

shell 复制代码
mkdir zkcluster

解压zookeeper-3.8.4.tar.gz 到zkcluster目录下

shell 复制代码
tar -zxvf apache-zookeeper-3.8.4.tar.gz -C /zkcluster
  1. 改变名称
shell 复制代码
mv zookeeper-3.8.4 zookeeper01

复制并改名

shell 复制代码
cp -r zookeeper01/ zookeeper02
cp -r zookeeper01/ zookeeper03
  1. 分别在zookeeper01、zookeeper02、zookeeper03目录下创建data及logs目录
shell 复制代码
mkdir data
cd data
mkdir logs
  1. 修改配置文件名称
shell 复制代码
cd conf
mv zoo_sample.cfg zoo.cfg
  1. 配置每一个Zookeeper的dataDir(zoo.cfg)clientPort分别为2181 2182 2183
shell 复制代码
clientPort=2181
dataDir=/zkcluster/zookeeper01/data
dataLogDir=/zkcluster/zookeeper01/data/logs
shell 复制代码
clientPort=2182
dataDir=/zkcluster/zookeeper02/data
dataLogDir=/zkcluster/zookeeper02/data/logs
shell 复制代码
clientPort=2183
dataDir=/zkcluster/zookeeper03/data
dataLogDir=/zkcluster/zookeeper03/data/logs
  1. 配置集群

在每个zookeeper的data目录下创建一个myid文件内容分别是1,2,3。这个文件就是记录每个服务器的ID

shell 复制代码
touch myid

在每个zookeeper的zoo.cfg配置客户端访问端口(clientPort)和集群服务器IP列表

shell 复制代码
server.1=192.168.101.3:2881:3881
server.2=192.168.101.3:2882:3882
server.3=192.168.101.3:2883:3883
#server.服务器ID=服务器IP地址:服务器之间通信端口:服务器之间投票选举端口
  1. 启动集群

依次启动三个zk实例

相关推荐
Yuer20256 小时前
用 Rust 做分布式查询引擎之前,我先写了一个最小执行 POC
开发语言·分布式·rust
张彦峰ZYF8 小时前
高并发场景下的缓存雪崩探析与应对策略
redis·分布式·缓存
张彦峰ZYF10 小时前
高并发场景下的缓存穿透问题探析与应对策略
redis·分布式
TT哇11 小时前
【RabbitMQ】@Autowired private RabbitTemplate rabbitTemplate;
java·分布式·rabbitmq
Rainly200012 小时前
工作日志之postgresql实现分布式锁
数据库·分布式·postgresql
ha_lydms12 小时前
3、Spark 函数_d/e/f/j/h/i/j/k/l
大数据·分布式·spark·函数·数据处理·dataworks·maxcompute
张彦峰ZYF12 小时前
优化分布式系统性能:热key识别与实战解决方案
redis·分布式·性能优化
张彦峰ZYF12 小时前
高并发场景下的大 Key 问题及应对策略
redis·分布式·缓存
AC赳赳老秦13 小时前
财务数据智能解读:DeepSeek分析利润表生成异常波动原因报告
数据库·人工智能·postgresql·zookeeper·测试用例·时序数据库·deepseek
张彦峰ZYF13 小时前
高并发场景下的缓存击穿问题探析与应对策略
redis·分布式·缓存