如何快速搭建 Zookeeper 分布式集群配置与快速部署~

📑本篇内容:如何搭建 Zookeeper 分布式集群配置与快速部署~

📘 文章专栏:SpringBoot微服务 其原理与项目开发

📚 更新周期:2022年4月9日 ~ 2022年4月9日

🙊个人简介:一只二本院校在读的大三程序猿,本着注重基础,打卡算法,分享技术作为个人的经验总结性的博文博主,虽然可能有时会犯懒,但是还是会坚持下去的,如果你很喜欢博文的话,建议看下面一行~(疯狂暗示QwQ)

🌇点赞 👍 收藏 ⭐留言 📝 一键三连 关爱程序猿,从你我做起

📖Zookeeper 集群配置部署

📑 0.0 本文阅读须知

本文约定俗成了一些术语/参数等,这些参数/术语需要阅读本文的同学针对于自身的真实情况进行修改。

Master 是本文的唯一一台主机也就是名称节点
192.168.56.102 是 Master 的 ip 地址
hadoop 是 Master 下的一个普通用户
-----------------分割线---------------
slave1 是本文其中一台从机也就是其中一个数据节点
192.168.56.103 是 slave1 的 ip 地址
centos101 是 slave1 下的一个普通用户
-----------------分割线---------------
slave2 是本文另一台从机也就是另外一个数据节点
192.168.56.104 是 slave2 的 ip 地址
centos102 是 slave2 下的一个普通用户

📑 1.1 集群安装

🔖 1.1.1 集群规划

在 hadoop 、centos101 、centos102 三个节点上都部署Zookeeper

思考:如果是10台服务器,需要部署多少台Zookeeper?

🔖 1.1.2 解压安装

  • 将我们下载好的 apache-zookeeper-3.5.7-bin.tar.gz 解压到我们的 /usr/local 目录下
# 解压.tar.gz 文件到指定的文件夹当中
$ sudo tar -zxvf ./apache-zookeeper-3.5.7-bin.tar.gz -C /usr/local
# 进入/usr/local 对其重命名
$ cd /usr/local
$ sudo mv ./apache-zookeeper-3.5.7-bin/ ./zookeeper
# 将文件夹的所有者设置为 hadoop
$ sudo chown -R hadoop ./zookeeper/
  • 配置环境变量
# 修改当前用户的环境变量配置
vim ~/.bashrc

在文件开头加入:

Ubuntun18.0.4

export ZOOKEEPER_HOME=/usr/local/zookeeper
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_162
export PATH=${JAVA_HOME}/bin:${ZOOKEEPER_HOME}/bin:$PATH

centOS7.6

export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_162
export ZOOKEEPER_HOME=/usr/local/zookeeper
export CLASSPATH=.:$JAVA_HOME/lib/:$ZOOKEEPER_HOME/lib/

export PATH=$PATH:$JAVA_HOME/bin:$ZOOKEEPER_HOME/bin
# 配置完毕之后 :wq 保存并退出然后重新加载环境变量配置
source ~/.bashrc

🔖 1.1.3 配置服务器编号

  • 进入zookeeper文件夹之后创建一个名称为zkData的文件夹的同时服务器编号输入在其中创建的一个 myid 文件中
$ cd zookeeper
$ mkdir zkData
$ cd zkData
$ echo "1" > /usr/local/zookeeper/zkData/myid

🔖 1.1.4 配置 zoo.cfg 文件

  • 重命名 /usr/local/zookeeper/conf/zoo_sample.cfgzoo.cfg 然后再进行配置
$ cd /usr/local/zookeeper/conf
$ mv ./zoo_sample.cfg ./zoo.cfg
$ vim ./zoo.cfg
  • 修改数据存储路径配置
dataDir=/usr/local/zookeeper/zkData
  • 在文件末尾追加 集群地址配置
########### cluster ############
server.1=192.168.56.102:2888:3888
server.2=192.168.56.103:2888:3888
server.3=192.168.56.104:2888:3888

📚 配置参数解读:

server.A=B:C:D

  • A 是一个数字,表示这个是第几号服务器,也就是之前配置好的服务器编号。 集群模式下配置一个文件 myid ,这个文件在 dataDir 目录下,这个文件里面有一个数据就是A的值,Zookeeper 启动时读取此文件,拿到里面的数据与 zoo.cfg 里面的配置信息 比较从而判断到底是哪个server

  • B 是这个服务器的地址。

  • C 是这个服务器 Follower 与集群中的 Leader 服务器交换信息的端口。

  • D 是万一集群中的 Leader 服务器挂了,需要一个端口重新进行选举选出一个新的 Leader ,而这个端口就是用来执行选举时服务器相互通信的端口。


  • scp (secure copy) 主机之间文件加密传输
# Master 将 配置好的 zookeeper 文件夹 传输给 Slaver1的centos101用户的用户目录下
$ scp -r /usr/local/zookeeper/     centos101@192.168.56.103:/home/centos101
# Master 将 配置好的 zookeeper 文件夹 传输给 Slaver2的centos102用户的用户目录下
$ scp -r /usr/local/zookeeper/     centos102@192.168.56.104:/home/centos102
  • 分别进入centos1 、centos2中对/usr/local/zookeeper/zkData/myid 进行服务器编号设置

📑 1.2 集群启动

  • 回到 Master 主机上输入下述指令即可,因为之前配置了环境变量可以直接运行,如果没有配置环境变量会导致指令未找到。
# 启动 zookeeper集群
$ zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
# 检查是否启动成功
$ zkServer.sh status

而此时的结果却是 Error

Error contacting service. It is probably not running.

📚 注意点:这里为什么会启动失败呢? 原因很简单,在Zookeeper的特点中 —— 集群当中 只要有大于半数以上节点存活 ,Zookeeper集群就能正常服务。所以Zookeeper适合安装奇数台服务器。 而此时我们只启动了一台机器,但是我们一共配置了三台主机,所以此时集群启动失败,无法工作

我们只需要将另外一台虚拟机的zookeeper启动就可以了此时zookeeper中的存活节点数量为 2 > 3/2 所以可以正常运行。

$ zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost.
Mode: leader

如此一来便可以进行工作了。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
部署Zookeeper分布式集群时,需要按照以下步骤进行操作: 1. 下载Zookeeper软件包:访问Apache Zookeeper官方网站,下载适用于您的操作系统的最新版本的Zookeeper软件包。 2. 解压软件包:将下载的软件包解压到您选择的目录中。 3. 配置Zookeeper节点:在解压目录中,创建一个新的文件夹,并在该文件夹内为每个Zookeeper节点创建一个配置文件(例如,zoo.cfg)。 4. 编辑配置文件:打开每个Zookeeper节点的配置文件,并进行以下配置: - 指定数据目录(dataDir):将每个节点的数据目录设置为独立的文件夹。 - 配置客户端端口(clientPort):指定用于与Zookeeper集群通信的端口号。 - 配置集群节点信息(server):指定每个节点的ID、主机名和通信端口。 5. 启动Zookeeper节点:在每个节点上启动Zookeeper实例。使用命令行界面进入每个节点的目录,然后运行以下命令: ``` $ bin/zkServer.sh start ``` 6. 检查集群状态:运行以下命令检查集群状态: ``` $ bin/zkServer.sh status ``` 7. 配置Zookeeper客户端:在要连接到Zookeeper集群的机器上,编辑Zookeeper客户端的配置文件(例如,zoo.cfg)。指定Zookeeper集群中的所有节点的主机名和通信端口。 8. 启动Zookeeper客户端:使用命令行界面进入Zookeeper客户端的目录,并运行以下命令启动客户端: ``` $ bin/zkCli.sh ``` 9. 连接到Zookeeper集群:在Zookeeper客户端中,使用以下命令连接到Zookeeper集群: ``` $ connect host:port ``` 其中,host是任意Zookeeper节点的主机名,port是该节点的通信端口。 10. 运行Zookeeper命令:一旦成功连接到Zookeeper集群,您可以使用Zookeeper提供的命令进行管理和操作。 请注意,这些步骤只提供了Zookeeper分布式集群部署的基本指导,实际部署可能会因环境和需求而有所不同。确保在部署过程中参考官方文档和最佳实践。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Alascanfu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值