7

zookeeper伪分布式集群环境搭建

 3 years ago
source link: http://cbaj.gitee.io/blog/2020/09/17/zookeeper%E4%BC%AA%E5%88%86%E5%B8%83%E5%BC%8F%E9%9B%86%E7%BE%A4%E7%8E%AF%E5%A2%83%E6%90%AD%E5%BB%BA/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

zookeeper伪分布式集群环境搭建

2020-09-17

| 环境搭建

| 12次阅读

889

|

3

伪分布式集群就是在一台机器部署多个zk应用,部署之前服务器需要有jdk环境 java -version可以显示相关java信息才可以进行zookeeper搭建,本文是基于macOs搭建

下载地址:http://zookeeper.apache.org/releases.html

下载之后解压

1
tar –zxvf zookeeper-3.4.6.tar.gz

文件夹重命名

1
mv zookeeper-3.4.6 zookeeper

step1

进入zk中的conf目录下输入cp zoo-sample.cfg zoo1.cfg cp zoo-sample.cfg zoo2.cfg、cp zoo-sample.cfg zoo3.cfg

20200917225742.png

step2

分别对zoo1、2、3文件进行编辑,修改内容如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=/Users/book/zk/server1/data
# the port at which the clients will connect
clientPort=2181
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1
server.1=localhost:2187:2887
server.2=localhost:2188:2888
server.3=localhost:2189:2889

dataDir=/Users/book/zk/server1/data

clientPort=2181

server.1=localhost:2187:2887
server.2=localhost:2188:2888
server.3=localhost:2189:2889

zoo2.cfg (clientPort=2182 ;dataDir=/Users/book/zk/server2/data)

zoo3.cfg (clientPort=2182 ;dataDir=/Users/book/zk/server3/data)

  • tickTime:这个时间是作为 Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳。

  • initLimit:这个配置项是用来配置 Zookeeper 接受客户端(这里所说的客户端不是用户连接 Zookeeper 服务器的客户端,而是 Zookeeper 服务器集群中连接到 Leader 的 Follower 服务器)初始化连接时最长能忍受多少个心跳时间间隔数。当已经超过 10个心跳的时间(也就是 tickTime)长度后 Zookeeper 服务器还没有收到客户端的返回信息,那么表明这个客户端连接失败。总的时间长度就是 10*2000=20 秒。

  • syncLimit:这个配置项标识 Leader 与 Follower 之间发送消息,请求和应答时间长度,最长不能超过多少个 tickTime 的时间长度,总的时间长度就是 5*2000=10秒。

  • dataDir:顾名思义就是 Zookeeper 保存数据的目录,默认情况下,Zookeeper 将写数据的日志文件也保存在这个目录里。

  • clientPort:这个端口就是客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求。

  • server.A=B:C:D:其中 A 是一个数字,表示这个是第几号服务器;B 是这个服务器的 ip 地址;C 表示的是这个服务器与集群中的 Leader 服务器交换信息的端口;D 表示的是万一集群中的 Leader 服务器挂了,需要一个端口来重新进行选举,选出一个新的 Leader,而这个端口就是用来执行选举时服务器相互通信的端口。如果是伪集群的配置方式,由于 B 都是一样,所以不同的 Zookeeper 实例通信端口号不能一样,所以要给它们分配不同的端口号。

1
2
3
4
5
6
7
$ mkdir /Users/book/zk/server1/data
$ mkdir /Users/book/zk/server2/data
$ mkdir /Users/book/zk/server3/data

$ echo 1 > /Users/book/zk/server1/data/myid
$ echo 2 > /Users/book/zk/server2/data/myid
$ echo 3 > /Users/book/zk/server3/data/myid
20200917230653.png
1
2
3
$ ./zkServer.sh start zoo1.cfg
$ ./zkServer.sh start zoo2.cfg
$ ./zkServer.sh start zoo3.cfg

检测是否成功

1
$ ./zkCli.sh -server localhost:2181
20200917231530.png

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK