zookeeper集群搭建

一、zookeeper集群搭建

1、搭建zookeeper集群准备三台机器,需要安装jdk作为基础支持。此次使用的Zookeeper3.4.7版本。

2、准备三台服务器,将ip和端口规划好。这里最好将主机名,以及主机名和ip的映射关系配置到/etc/hosts内

vi /etc/hosts 
127.0.0.1 localhost
::1 localhost
10.32.40.11  zk01
10.32.40.12  zk02
10.32.40.13  zk03

3、在三台机器上安装zk所需要的jbk安装包,解压安装

tar -zxf jdk1.8.0_131.tar.gz -C /data/zk/

4、修改环境变量/etc/profile,在文件行尾加入环境变量保存退出。

export JAVA_HOME=/data/zk/jdk1.8.0_131
export PATH=$PATH:$JAVA_HOME/bin

5、zookeeper安装包下载
官网下线zookeeper安装包,https://zookeeper.apache.org/

mkdir -p /data/zk/
tar -zxvf zookeeper-3.4.10.tar.gz -C /data/zk/

6、修改zookeeper配置文件zoo.cfg
进入conf目录,复制zoo-sample.cfg重命名为zoo.cfg,通过修改zoo.cfg来对zookeeper进行配置。这个名字固定写死,
因为zookeeper启动会检查这个文件,根据这个配置文件里的信息来启动服务。

cd /data/zk/zookeeper-3.4.10/conf
cp zoo-sample.cfg zoo.cfg

vim zoo.cfg,此文件中需要修改以下两处:

7、dataDir:指定zookeeper将数据保存在哪个目录下,如果不修改,默认在/tmp下,这个目录下的数据有可能会
在磁盘空间不足或服务器重启时自动被linux清理,所以一定要修改这个地址。按个人习惯将其修改为自己的管理目录。

dataDir=/data/zk/zookeeper-3.4.10/data
dataLogDir=/data/zk/zookeeper-3.4.10/logs

8、完全分布式:多台机器各自配置,zookeeper有几个节点,就配置几个server。例如本文总共三台主机,于是在配置文件
末尾加上下面三行,可以填写ip也可以是/etc/hosts的主机名,建议后者,可以充分解耦

server.1=zk01:2888:3888
server.2=zk02:2888:3888
server.3=zk03:2888:3888

注意:一定要跟自己的myid配置对应上,否则集群一直处于非正常状态 myid文件中就是N,则对应zoo.cfg 中server.{N} ,
关于myid配置,见下一小节zookeeper服务默认的端口号为2888和3888,2888原子广播端口,3888选举端口。

9、在zoo.cfg配置文件下的dataDir=/data/zk/zookeeper-3.4.10/data参数目录下创建myid文件,里面填写的内容server.{N}一致

cd /data/zk/zookeeper-3.4.10/data
vi myid
1

10、将zk软件包都拷贝到zk02,zk03主机上

scp -r/data/zk/zookeeper-3.4.10 root@zk02
scp -r /data/zk/zookeeper-3.4.10 root@zk03

将另外两台服务器中的myid文件中的id即可。

#spart02
vim myid
2
#spart03
vim myid
3

11、启动zk

启动ZK服务,Zookeeper集群需要每台挨个启动。
bin/zkServer.sh start
#停止ZK服务:
bin/zkServer.sh stop
#重启ZK服务:
bin/zkServer.sh restart
查看ZK服务状态:
bin/zkServer.sh status  依次查看三台主机,会发现某一台被选举为leader,其余两台为follower
可以使用ps -ef查询zk进程

12、测试zk数据是否同步

1.切换目录
cd /data/zk/zookeeper-3.4.10

2.客户登陆,
./bin/zkCli.sh

注意zoo.cfg如果修改了clientPort,例如clientPort=8131,那么此处需要指定参数 ./bin/zkCli.sh
-server localhost:8131 本实验是登陆本机操作,当然localhost也可以是其他zk主机

WatchedEvent state:SyncConnected type:None path:null
[zk: localhost:2181(CONNECTED) 0] ls /
[zookeeper]
[zk: localhost:2181(CONNECTED) 1] get /zookeeper
cZxid = 0x0
ctime = Thu Jan 01 08:00:00 CST 1970
mZxid = 0x0
mtime = Thu Jan 01 08:00:00 CST 1970
pZxid = 0x0
cversion = -1
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 0
numChildren = 1
[zk: localhost:2181(CONNECTED) 3] create /dls 1234  //创建一个dls文件并且值为:1234
Created /dls
[zk: localhost:2181(CONNECTED) 4] ls / #查看是否创建好了
[dls, zookeeper]
[zk: localhost:2181(CONNECTED) 5] get /dls #获取文件的值
1234
cZxid = 0x200000002
ctime = Fri Mar 25 09:54:20 CST 2022
mZxid = 0x200000002
mtime = Fri Mar 25 09:54:20 CST 2022
pZxid = 0x200000002
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 3
numChildren = 0
[zk: localhost:2181(CONNECTED) 6]

13、在zk02和zk03上查询zk01文件是否同步过来

./bin/zkCli.sh -server localhost:8131

[zk: localhost:2181(CONNECTED) 0] ls /  显示dls同步过来了
[dls zookeeper]
[zk: localhost:2181(CONNECTED) 1] get dls 获取dls文件内容
1234
cZxid = 0x200000002
ctime = Fri Mar 25 09:54:20 CST 2022
mZxid = 0x200000002
mtime = Fri Mar 25 09:54:20 CST 2022
pZxid = 0x200000002
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 3
numChildren = 0
[zk: localhost:2181(CONNECTED) 2]

14、测试zk的角色转移

首先查询一下zk01 、zk02、zk03的角色状态

bin/zkServer.sh status

停止leader这台服务

bin/zkServer.sh stop

发现集群会重新选举出一个leader。重启原来的leader,会变成follower。

完结~

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值