Zookeeper集群安装配置

前言

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.gz
  • zookeeper/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" > myid
  • scp分发安装文件到其他两台服务器,并且修改对应的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 ... STARTED
  • slave202启动

    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 ... STARTED
  • slave203启动

    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地址的映射都要配置上集群中其它结点的映射信息

分享到 评论