• zookeeper集群环境配置


    环境参数如下:

    服务器操作系统: Red Hat Enterpriser Linux 6.5 三台(IP地址分别为:192.168.5.128,192.168.5.129,192.168.5.130)

    zookeeper版本: zookeeper-3.4.10

    JDK版本: jdk1.8.0_144

    现在先配置其中的一台服务器192.168.5.128

    1 将zookeeper解压到/usr/目录下(/usr/zookeeper-3.4.10)

    2 在/usr/zookeeper-3.4.10目录新新建logs,data文件夹作为zookeeper配置文件的一部分

    3 在/usr/zookeeper-3.4.10/conf目录下新建配置文件zoo.cfg,可以把zoo_sample.cfg的内容复制到zoo.cfg

    4 修改zoo.cfg文件的内容,配置文件内容如下:

     1 # The number of milliseconds of each tick
     2  tickTime=2000
     3 # The number of ticks that the initial 
     4 # synchronization phase can take
     5  initLimit=10
     6 # The number of ticks that can pass between 
     7 # sending a request and getting an acknowledgement
     8  syncLimit=5
     9 # the directory where the snapshot is stored.
    10 # do not use /tmp for storage, /tmp here is just 
    11 # example sakes.
    12  dataDir=/usr/zookeeper-3.4.10/data
    13  dataLogDir=/usr/zookeeper-3.4.10/logs
    14 # the port at which the clients will connect
    15 clientPort=2888
    16 server.0=192.168.5.128:8880:7770
    17 server.1=192.168.5.129:8881:7771
    18 server.2=192.168.5.130:8882:7772
    19 # the maximum number of client connections.
    20 # increase this if you need to handle more clients
    21 #maxClientCnxns=60
    22 #
    23 # Be sure to read the maintenance section of the 
    24 # administrator guide before turning on autopurge.
    25 #
    26 # http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
    27 #
    28 # The number of snapshots to retain in dataDir
    29 #autopurge.snapRetainCount=3
    30 # Purge task interval in hours
    31 # Set to "0" to disable auto purge feature
    32 #autopurge.purgeInterval=1

    参数说明如下:

    •tickTime: zookeeper中使用的基本时间单位, 毫秒值.
    •dataDir: 数据目录. 可以是任意目录.
    •dataLogDir: log目录, 同样可以是任意目录. 如果没有设置该参数, 将使用和dataDir相同的设置.
    •clientPort: 监听client连接的端口号.

    其中clientPort默认是2181,可以根据实际情况修改为没有使用的端口,server.0,server.1,server.2分别是三台服务器的标识,各个参数的意义如下:

    以server.0=192.168.5.128:8880:7770为例,192.168.5.128是服务器IP地址,端口8880表示在zookeeper服务器之间及和leader连接时使用,端口7770是在进行leader选举时使用,其他的server.1,server2对应的意义和server.0完全一样

    5 在/usr/zookeeper-3.4.10/data目录下新建myid文件,修改myid文件内容为0,这个0是和zoo.cfg文件里面的server.0中的0是对应的

    6 以上步骤完成以后,将192.168.5.128服务器上整个的zookeeper-3.4.10目录分别上传到192.168.5.129,192.168.5.130两台服务器,命令如下:

    1 scp -r /usr/zookeeper-3.4.10 root@192.168.5.129:/usr/zookeeper-3.4.19
    2 scp -r /usr/zookeeper-3.4.10 root@192.168.5.130:/usr/zookeeper-3.4.19

    7 上传完以后,分别修改192.168.5.129服务器上/usr/zookeeper-3.4.10/data目录下的myid文件内容为1,192.168.5.130服务器上/usr/zookeeper-3.4.10/data目录下的myid文件内容为2

    8 测试,先通过命令./zkServer.sh start启动任意两台服务器,然后在命令行输入./zkServer.sh status检查服务启动情况如果出现如下截图的信息:

    说明是服务器防火墙的问题,把服务器的防火墙都关掉,重新输入./zkServer.sh status,如果能看到如下信息证明zookeeper集群配置成功

    先在192.168.5.128上输入./zkServer.sh start,截图如下:

    然后再用相同的方式启动192.168.5.129上对应的服务,截图如下:

    在192.168.5.128,192.168.5.130上分别执行./zkServer.sh status检查服务情况,截图分别如下

    以上图片的展示信息说明服务器192.168.5.128在集群中承担的角色是follower,192.168.5.129在集群中承担的角色是leader

    现在把192.168.5.130服务器上对应的服务启动起来,通过检查确认192.,168.5.130在集群中承担的角色也是follower

    现在通过命令./zkServer.sh stop把服务器192.168.5.129的zookeeper服务停掉,然后再检查每台服务器成都的角色,发现此时,集群中的leader变成了192.168.5.130这台服务器

    通过以上测试可以获取如下结论:

    当zookeeper集群中存在多台服务器的时候,只要存活的机器数在总服务器数目半数以上就能够正常对外提供服务,当集群中对外提供服务的服务器只有2台的情况下,节点数大的服务器被选中为leader的几率会大(例如本文章中提到的当192.168.5.129服务器停掉后,只有192.168.5.128,192.168.5.130对外提供服务,在配置文件中这两台服务器对应的节点分别是server.0,server.1,所以zookeeper会把server.1节点选择为leader节点)

  • 相关阅读:
    Atcoder Regular Contest 123 题解
    Atcoder Grand Contest 015 F Kenus the Ancient Greek(找性质+乱搞)
    Solution 「CF 575G」Run for beer
    Solution 「CF 510E」Fox And Dinner
    Solution 「洛谷 P4389」付公主的背包
    Solution 「CF 555E」Case of Computer Network
    Solution 「CF 802C」Heidi and Library (hard)
    Solution 「JOISC 2020」「UOJ #509」迷路的猫
    Div弹出框
    JS对话框
  • 原文地址:https://www.cnblogs.com/anqli-java/p/7607634.html
Copyright © 2020-2023  润新知