Zookeeper 分布式环境搭建

本文详细介绍了ZooKeeper的数据模型结构及其与Linux文件系统的相似之处,重点讲解了ZooKeeper的选举机制,并提供了在Centos7环境下搭建ZooKeeper分布式环境的完整步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Zoopkeeper数据模型结构与Linux文件系统很像,整体上可以看作一棵树,树的每个节点称作一个znode。每一个znode默认存储1MB数据,每个znode都可以通过路径唯一标识。

选举机制

  1. 当启动的机器数大于集群总机器数的一半,开始选举leader,myid最大的选为leader。
    此后,剩余的机器启动后,只能作为follower。
  2. 当leader down后,从剩余的机器中依据myid最大的作为leader;如果down掉的机器又重新启动,只能作为follower。

数据版本最新,myid越大,选为leader

这里讲述Centos 7系统上搭建zookeeper分布式环境步骤。
前提条件:三台安装好jdk,关闭防火墙的机器。

zookeeper安装包下载:
链接:https://pan.baidu.com/s/1a2hIk2fF9s-jM47KoFzS_w
提取码:sy9z

安装

1.解压安装包
上传zookeeper安装包到/opt,创建文件夹soft,解压安装包,移动zookeeper文件夹到soft文件夹中。

mkdir /opt/soft
tar -zxf zookeeper-3.4.5-cdh5.14.2.tar.gz 
mv zookeeper-3.4.5-cdh5.14.2 /opt/soft/zookeeper345

2.创建数据存储目录zkData
在 /opt/soft/zookeeper345下,创建文件夹 zkData

mkdir zkData

3.配置zoo.cfg文件
进入zookeeper配置文件目录 /opt/soft/zookeeper345/conf
复制zoo_sample.cfg为zoo.cfg,修改文件zoo.cfg。

cp zoo_sample.cfg zoo.cfg
vi zoo.cfg
修改:dataDir=/opt/soft/zookeeper345/zkData
追加:
server.2=hadoop2:2888:3888
server.3=hadoop3:2888:3888
server.4=hadoop4:2888:3888

参数含义解释如下。 Server.A=B:C:D。
 A:一个数字,表示每个服务器编号,注意必须唯一。
 B:服务器的 ip 地址,规划了几个机器作为 ZooKeeper 服务器,就有几行记 录,每一个机器都对应一行。 
 C:是这个服务器与集群中的 Leader 服务器交换信息的端口;
 D:如果集群中的 Leader 服务器挂了,需要一个端口来重新进行选举,选出 一个新的 Leader,而这个端口就是用来执行选举时服务器相互通信的端口。

4.将配置好的 zookeeper 分发到其他机器上
hadoop3、hadoop4上相同操作
实现ssh无密登录后,可直接scp 远程拷贝命令实现

scp -r zookeeper345/ root@hadoop3:$PWD

scp -r zookeeper345/ root@hadoop4:$PWD

5.创建并配置myid文件
在每个节点上的zkData目录下创建一个【myid】文件,写一个数字(必须zoo.cfg中server.X 的x对应),但不能重复。

vi myid
hadoop2上myid内容:2
hadoop3上myid内容:3
hadoop4上myid内容:4

6.配置环境变量
在每一台机器上给 zookeeper 配置环境变量

 vi /etc/profile 添加如下配置。 
 export ZK_HOME=/opt/soft/zookeeper345
 export PATH=$ZK_HOME/bin:$ZK_HOME/sbin:$PATH 

7.配置文件生效

  source /etc/profile

8.三台机器依次启动服务

[hadoop@hadoop2 ~]$ zkServer.sh start 
[hadoop@hadoop3 ~]$ zkServer.sh start 
[hadoop@hadoop4 ~]$ zkServer.sh start

9.查看服务进程
jps

1588 QuorumPeerMain  zookeeper服务进程
1612 Jps

10.查看状态

zkServer.sh status
[hadoop@hadoop2 ~]$ zkServer.sh status 
JMX enabled by default
Using config: /opt/install/zookeeper/bin/../conf/zoo.cfg 
Mode: follower

停止服务

zkServer.sh stop

选举机制测试:

测试1:
依次启动4 3 2

bin/zkServer.sh status 产看状态
4:Mode: leader
3:Mode: follower
2:Mode: follower

测试2:
依次启动2 3 4

bin/zkServer.sh status 产看状态
3:Mode: leader
4:Mode: follower
2:Mode: follower
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值