单台机器下的部署zookeeper伪集群

前言:当我们想要做zookeeper集群模式下的一些实践,但是又没有多个主机,或者不想配置虚拟机的时候,就可以选择在一台主机下进行测试。

准备:下载,解压,配置好zookeeper。

操作步骤:

  1. 拷贝一份zookeeper/conf/zoo_sample.cfg
HERMIALU-MB0:cd /usr/local/zookeeper/
HERMIALU-MB0:zookeeper huiminlu$ ls
LICENSE.txt		README_packaging.txt	docs
NOTICE.txt		bin			lib
README.md		conf
HERMIALU-MB0:zookeeper huiminlu$ cd conf/
HERMIALU-MB0:conf huiminlu$ ls
configuration.xsl	log4j.properties	zoo_sample.cfg
HERMIALU-MB0:conf huiminlu$ cp zoo_sample.cfg zoo.cfg
  1. 建立两个目录
HERMIALU-MB0:zookeeper huiminlu$ mkdir dataDir
HERMIALU-MB0:zookeeper huiminlu$ mkdir dataLogDir
  1. 在dataDir目录下新建myid文件,赋值1
HERMIALU-MB0:dataDir huiminlu$ cat myid 
1
  1. 拷贝dataDir和dataLogDir
HERMIALU-MB0:zookeeper huiminlu$ cp -r dataDir dataDir2
HERMIALU-MB0:zookeeper huiminlu$ cp -r dataDir dataDir3
HERMIALU-MB0:zookeeper huiminlu$ cp -r dataLogDir dataLogDir2
HERMIALU-MB0:zookeeper huiminlu$ cp -r dataLogDir dataLogDir3
HERMIALU-MB0:zookeeper huiminlu$ LS
LICENSE.txt		conf			dataLogDir2
NOTICE.txt		dataDir			dataLogDir3
README.md		dataDir2		docs
README_packaging.txt	dataDir3		lib
bin			dataLogDir		logs
  1. 修改dataDir2/myid 内容为2,修改dataDir3/myid内容为3
  2. 修改zoo.cfg的内容
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/usr/local/zookeeper/dataDir
dataLogDir=/usr/local/zookeeper/dataLogDir
# the port at which the clients will connect
clientPort=2181
#2888,zookeeper通信的端口号
#3888,zookeeper选举leader时使用的端口号
server.1=localhost:2887:3887
server.2=localhost:2888:3888
server.3=localhost:2889:3889

说明:设置dataDir,dataLogDir,设置三个服务器的地址。由于我们是在本机开启三个zookeeper服务,所以注意三个服务的clientPort,server端口号是不同的。
将zoo.cfg拷贝两份,作为第二个和第三个个服务的配置:

HERMIALU-MB0:conf huiminlu$ cp zoo.cfg zoo2.cfg
HERMIALU-MB0:conf huiminlu$ cp zoo.cfg zoo3.cfg

zoo2.cfg内容如下:

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/usr/local/zookeeper/dataDir2
dataLogDir=/usr/local/zookeeper/dataLogDir2
# the port at which the clients will connect
clientPort=2182
#2888,zookeeper通信的端口号
#3888,zookeeper选举leader时使用的端口号
server.1=localhost:2887:3887
server.2=localhost:2888:3888
server.3=localhost:2889:3889

zoo3.cfg内容如下:

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/usr/local/zookeeper/dataDir3
dataLogDir=/usr/local/zookeeper/dataLogDir3
# the port at which the clients will connect
clientPort=2183
#2888,zookeeper通信的端口号
#3888,zookeeper选举leader时使用的端口号
server.1=localhost:2887:3887
server.2=localhost:2888:3888
server.3=localhost:2889:3889
  1. 开启三个服务端
HERMIALU-MB0:bin huiminlu$ ./zkServer.sh start ../conf/zoo.cfg 
ZooKeeper JMX enabled by default
Using config: ../conf/zoo.cfg
Starting zookeeper ... STARTED
HERMIALU-MB0:bin huiminlu$ ./zkServer.sh start ../conf/zoo2.cfg 
ZooKeeper JMX enabled by default
Using config: ../conf/zoo2.cfg
Starting zookeeper ... STARTED
HERMIALU-MB0:bin huiminlu$ ./zkServer.sh start ../conf/zoo3.cfg 
ZooKeeper JMX enabled by default
Using config: ../conf/zoo3.cfg
Starting zookeeper ... STARTED
  1. 查看三个服务端的状态:
HERMIALU-MB0:bin huiminlu$ ./zkServer.sh status ../conf/zoo.cfg
ZooKeeper JMX enabled by default
Using config: ../conf/zoo.cfg
Client port found: 2181. Client address: localhost.
Mode: follower
HERMIALU-MB0:bin huiminlu$ ./zkServer.sh status ../conf/zoo2.cfg
ZooKeeper JMX enabled by default
Using config: ../conf/zoo2.cfg
Client port found: 2182. Client address: localhost.
Mode: leader
HERMIALU-MB0:bin huiminlu$ ./zkServer.sh status ../conf/zoo3.cfg
ZooKeeper JMX enabled by default
Using config: ../conf/zoo3.cfg
Client port found: 2183. Client address: localhost.
Mode: follower

可以看到第二个服务是leader
10. 开启客户端,这里如果没有指定服务器,会连端口号2181的服务

HERMIALU-MB0:bin huiminlu$ ./zkCli.sh
Connecting to localhost:2181
  1. 设置一些值:
[zk: localhost:2181(CONNECTED) 1] ls /
[zookeeper]
[zk: localhost:2181(CONNECTED) 2] create /zk_test my_data1
Created /zk_test
[zk: localhost:2181(CONNECTED) 3] ls /
[zk_test, zookeeper]
[zk: localhost:2181(CONNECTED) 4] get /zk_test
my_data1
[zk: localhost:2181(CONNECTED) 5] create /zk_test/demo1
Created /zk_test/demo1
  1. 断开客户端,连第二个服务,看看值是否一致。
[zk: localhost:2181(CONNECTED) 10] quit
HERMIALU-MB0:bin huiminlu$ ./zkCli.sh -server 127.0.0.1:2182
Connecting to 127.0.0.1:2182
[zk: 127.0.0.1:2182(CONNECTED) 0] ls /
[zk_test, zookeeper]
[zk: 127.0.0.1:2182(CONNECTED) 1] ls /zk_test
[demo1]

自此结束。

参考:
https://blog.51cto.com/aiilive/1684145
http://zookeeper.apache.org/doc/current/zookeeperStarted.html
MAC下安装和启动zookeeper

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值