Zookeeper 搭建分布式集群

本文介绍如何在单机环境下配置伪分布式ZooKeeper集群,并进一步展示真分布式环境中ZooKeeper集群的搭建过程。文章详细记录了配置步骤、运行指令及验证数据一致性的方法。

1. 伪分布式

  • 在单机上起3个不同端口号的进程,实现单机伪分布式集群,通过写入一个数据来验证数据一致性。
cp -r zookeeper-3.4.11/ zookeeper1/
cp -r zookeeper-3.4.11/ zookeeper2/
cp -r zookeeper-3.4.11/ zookeeper3/

配置

1)zoo.cfg配置文件

vim zookeeper2/conf/zoo.cfg
// 修改:
dataDir=/root/app/zookeeper2/dataDir
dataLogDir=/root/app/zookeeper2/dataLogDir
clientPort=2182
// 添加:
# 端口1:数据传播使用,端口2:选举模式使用
server.1 = 192.168.27.145:2888:3888
server.2 = 192.168.27.145:2889:3889
server.3 = 192.168.27.145:2890:3890

2)增加myid文件

vim zookeeper2/dataDir/myid

新建并添加:

2

3)zookeeper1和zookeeper3做同样的修改,把2对应处改成1或3即可。

运行

cd zookeeper1/bin/
./zkServer.sh start

cd zookeeper2/bin/
./zkServer.sh start

cd zookeeper3/bin/
./zkServer.sh start

// 添加数据
 ./zkCli.sh -server localhost:2181
[zk: localhost:2181(CONNECTED) 0] ls /
[zookeeper]
[zk: localhost:2181(CONNECTED) 1] create /data 123
Created /data
[zk: localhost:2181(CONNECTED) 2] ls /
[zookeeper, data]
// 退出
ctrl+c
// 验证其他端口
 ./zkCli.sh -server localhost:2183
[zk: localhost:2183(CONNECTED) 0] ls /
[zookeeper, data]
[zk: localhost:2183(CONNECTED) 1] get /data
123
cZxid = 0x100000004
ctime = Sat Jul 28 01:22:36 EDT 2018
mZxid = 0x100000004
mtime = Sat Jul 28 01:22:36 EDT 2018
pZxid = 0x100000004
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 3
numChildren = 0

2. 真分布式

  • 起3个不同ip地址的服务器,通过zookeeper搭建分布式集群。
  • 通过写入一个数据来验证数据一致性。
  • 通过使leader宕机来验证Leader选举。

配置

1)/conf/zoo.cfg配置文件

// 修改:
server.1 = 192.168.27.145:2888:3888
server.2 = 192.168.27.138:2888:3888
server.3 = 192.168.27.135:2888:3888

2)对应修改/dataDir/myid

运行

三台机器分别启动:

cd bin/
./zkServer.sh start

查看机器状态:

./zkServer.sh status
>>> Mode: leader
>>> Mode: follower
>>> Mode: follower

验证1:数据一致性

./zkCli.sh -server 192.168.27.135:2181
[zk: 192.168.27.135:2181(CONNECTED) 0] ls /
[zookeeper, data, real-culster]
[zk: 192.168.27.135:2181(CONNECTED) 1] create /mytest 1234
Created /mytest
[zk: 192.168.27.135:2181(CONNECTED) 2] ls /
[mytest, zookeeper, data, real-culster]
[zk: 192.168.27.135:2181(CONNECTED) 3] get /mytest
1234

验证2:Leader选举

  • 三台机器,使其中的leader宕机,随后查看另外两台机器测状态:
./zkServer.sh status
>>> Mode: leader
>>> Mode: follower

发现两台机器通过竞争产生了leader

  • 使宕机的机器恢复,重新启动zookeeper,他的加入不会改变leader,自己成为了follower。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值