前言
Zookeeper分布式开源框架,它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。
准备安装文件
以下为大家准备了安装文件,也可以自己到网上下载
下载地址:https://archive.apache.org/dist/zookeeper/
准备文件 | 下载地址 |
---|---|
zookeeper-3.4.10.tar | 链接: https://pan.baidu.com/s/1dlUjcLjemTcm7jnc0HDiwQ 提取码: typ4 |
Zookeeper安装
安装前,准备服务器集群,一般准备3台机器Centos虚拟机安装&NAT网络配置,并且配置好host
上传安装包解压
1
2# 上传安装包至服务器
[root@master201 Soft]# tar -xvf zookeeper-3.4.10.tar.gzzookeeper/conf配置 zoo.cfg
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34[root@master201 Soft]# cd /home/lishijia/Soft/zookeeper-3.4.10/conf
[root@master201 conf]# cp zoo_sample.cfg zoo.cfg
[root@master201 conf]# vim zoo.cfg
修改dataDir目录
增加节点信息
The number of milliseconds of each tick
tickTime=2000
The number of ticks that the initial
synchronization phase can take
initLimit=10
The number of ticks that can pass between
sending a request and getting an acknowledgement
syncLimit=5
the directory where the snapshot is stored.
do not use /tmp for storage, /tmp here is just
example sakes.
dataDir=/home/lishijia/Soft/zookeeper-3.4.10/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.A=B:C:D中的A是一个数字,表示这个是第几号服务器,B是这个服务器的IP地址,C第一个端口用来集群成员的信息交换,表示这个服务器与集群中的leader服务器交换信息的端口,D是在leader挂掉时专门用来进行选举leader所用的端口。当中的201,202,203 需要在ServerID当中使用
server.201= master201:2888:3888
server.202= slave202:2888:3888
server.203= slave203:2888:3888创建ServerId标识
1
2
3
4[root@master201 data]# cd /home/lishijia/Soft/zookeeper-3.4.10/data/
输入当前机器的标识201到myid文件当中,201是在conf文件当中指定的
在201服务器上面创建myid文件,并设置值为201,同时与zoo.cfg文件里面的server.201保持一致,如下
[root@master201 data]# echo "201" > myidscp分发安装文件到其他两台服务器,并且修改对应的myid标识
1
2
3
4
5
6
7[root@master201 zookeeper-3.4.10]# scp -r /home/lishijia/Soft/zookeeper-3.4.10/ slave202:/home/lishijia/Soft/
[root@master201 zookeeper-3.4.10]# scp -r /home/lishijia/Soft/zookeeper-3.4.10/ slave203:/home/lishijia/Soft/
在202服务器上面创建myid文件,并设置值为202,同时与zoo.cfg文件里面的server.202保持一致,如下
[root@slave202 data]# echo "202" > myid
在203服务器上面创建myid文件,并设置值为203,同时与zoo.cfg文件里面的server.203保持一致,如下
[root@slave203 data]# echo "203" > myid
启动Zookeeper集群&检查主从
master201启动
1
2
3
4
5[root@master201 bin]# cd /home/lishijia/Soft/zookeeper-3.4.10/bin
[root@master201 bin]# ./zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /home/lishijia/Soft/zookeeper-3.4.10/bin/../conf/zoo.cfg
Starting zookeeper ... STARTEDslave202启动
1
2
3
4
5[root@slave202 bin]# cd /home/lishijia/Soft/zookeeper-3.4.10/bin
[root@slave202 bin]# ./zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /home/lishijia/Soft/zookeeper-3.4.10/bin/../conf/zoo.cfg
Starting zookeeper ... STARTEDslave203启动
1
2
3
4
5[root@slave203 bin]# cd /home/lishijia/Soft/zookeeper-3.4.10/bin
[root@slave203 bin]# ./zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /home/lishijia/Soft/zookeeper-3.4.10/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED检查主从,3台机器当中slave202为zookeeper主节点,即leader
1
2
3
4
5
6
7
8
9
10
11
12
13
14[root@master201 bin]# ./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /home/lishijia/Soft/zookeeper-3.4.10/bin/../conf/zoo.cfg
Mode: follower
[root@slave202 bin]# ./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /home/lishijia/Soft/zookeeper-3.4.10/bin/../conf/zoo.cfg
Mode: leader
[root@slave203 bin]# ./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /home/lishijia/Soft/zookeeper-3.4.10/bin/../conf/zoo.cfg
Mode: follower
总结
安装过程遇到问题:在vim zoo.cfg的时候,忘记保存了。导致启动了所有的是standalone,即单机模式
ZooKeeper集群中具有两个关键的角色:Leader和Follower。集群中所有的结点作为一个整体对分布式应用提供服务,集群中每个结点之间都互相连接,所以,在配置的ZooKeeper集群的时候,每一个节点的host到IP地址的映射都要配置上集群中其它结点的映射信息