Zookeeper集群搭建

  • 准备:

1.安装JDK。

2.下载zookeeper包

[root@bogon zk]# wget https://archive.apache.org/dist/zookeeper/zookeeper-3.5.5/apache-zookeeper-3.5.5-bin.tar.gz
  • 安装

解压:

[root@bogon zk]# tar -zxvf  apache-zookeeper-3.5.5-bin.tar.gz

复制配置文件:

[root@bogon zk]# cp apache-zookeeper-3.5.5-bin/conf/zoo_sample.cfg  apache-zookeeper-3.5.5-bin/conf/zoo.cfg

单机模拟集群,要求实例的数量是单数,我们这里使用三个实例,复制三个副本:

[root@bogon zk]# cp -rf  apache-zookeeper-3.5.5-bin zk01
[root@bogon zk]# cp -rf  apache-zookeeper-3.5.5-bin zk02
[root@bogon zk]# cp -rf  apache-zookeeper-3.5.5-bin zk03

这样我们就拥有了三个zookeeper服务。

修改配置文件,由于是单机模拟,每个服务的端口不能相同:

zk01为默认的2181,

zk02为2182,

zk03为2183.

并且添加集群信息:

server.1=127.0.0.1:2888:3888
server.2=127.0.0.1:2889:3889
server.3=127.0.0.1:2890:3890
#其中1,2,3分别代表服务的myid(下面会配置),127.0.0.1代表服务的地址,2888,3888为集群所需端口

为每个服务创建data目录:

[root@bogon zk]# mkdir zk01/data
[root@bogon zk]# mkdir zk02/data
[root@bogon zk]# mkdir zk03/data

更改zk01的dataDir:

[root@bogon zk]# vim zk01/conf/zoo.cfg 

更改为:

dataDir=/opt/zk/zk01/data

server.1=127.0.0.1:2888:3888
server.2=127.0.0.1:2889:3889
server.3=127.0.0.1:2890:3890

更改zk02的clientPort和dataDir:

[root@bogon zk]# vim zk02/conf/zoo.cfg 

更改为:

clientPort=2182
dataDir=/opt/zk/zk02/data

server.1=127.0.0.1:2888:3888
server.2=127.0.0.1:2889:3889
server.3=127.0.0.1:2890:3890

更改zk03的clientPort和dataDir:

[root@bogon zk]# vim zk03/conf/zoo.cfg 

更改为:

clientPort=2183
dataDir=/opt/zk/zk03/data

server.1=127.0.0.1:2888:3888
server.2=127.0.0.1:2889:3889
server.3=127.0.0.1:2890:3890

现在配置文件都配置好了,下面配置每个服务的myid :

[root@bogon zk]# echo > zk01/data/myid 1
[root@bogon zk]# echo > zk02/data/myid 2
[root@bogon zk]# echo > zk03/data/myid 3

这样就配置完毕了。下面分别启动三个实例:

 

[root@bogon zk]# zk03/bin/zkServer.sh start              #先启动zk03
ZooKeeper JMX enabled by default 
Using config: /opt/zk/zk03/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
[root@bogon zk]# zk02/bin/zkServer.sh start              #再启动zk02
ZooKeeper JMX enabled by default
Using config: /opt/zk/zk02/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
[root@bogon zk]# zk01/bin/zkServer.sh start              #最后启动zk01
ZooKeeper JMX enabled by default
Using config: /opt/zk/zk01/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED

看到上面的提示就表示服务启动成功了,下面看一下集群的状态,通过zk选举机制可以得出,应该是zk03为leader:

[root@bogon zk]# zk02/bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /opt/zk/zk02/bin/../conf/zoo.cfg
Client port found: 2182. Client address: localhost.
Mode: follower                                        #zk02为follower
[root@bogon zk]# zk01/bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /opt/zk/zk01/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost.
Mode: follower                                        #zk01为follower
[root@bogon zk]# zk03/bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /opt/zk/zk03/bin/../conf/zoo.cfg
Client port found: 2183. Client address: localhost.
Mode: leader                                          #zk03为leader

下面测试一下集群间的数据:

连接到2181端口也就是我们的zk01:

[root@bogon zk]# zk01/bin/zkCli.sh -server 127.0.0.1:2181

创建一个test节点:

[zk: 127.0.0.1:2181(CONNECTED) 1] create /test hello
Created /test

退出,然后连接2182也就是zk02:

[zk: 127.0.0.1:2181(CONNECTED) 7] quit

WATCHER::

WatchedEvent state:Closed type:None path:null
2019-08-21 11:14:55,770 [myid:] - INFO  [main:ZooKeeper@1422] - Session: 0x100531763a60000 closed
2019-08-21 11:14:55,770 [myid:] - INFO  [main-EventThread:ClientCnxn$EventThread@524] - EventThread shut down for session: 0x100531763a60000
[root@bogon zk]# zk01/bin/zkCli.sh -server 127.0.0.1:2182

查看信息:

[zk: 127.0.0.1:2182(CONNECTED) 0] ls /
[test, zookeeper]

到此集群就搭建完毕。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值