• ZooKeeper 集群部署



    一、规划

    1.1 主机规划

    主机服务/程序备注
    192.168.56.21(2C/2G)JDK、ZooKeeperZK 集群
    192.168.56.22(2C/2G)JDK、ZooKeeper-
    192.168.56.23(2C/2G)JDK、ZooKeeper-

    1.2 版本规划

    服务/程序版本备注
    JDK1.8.0为 ZK 提供 JDK 环境
    ZooKeeper3.4.10-

    1.3 目录规划

    服务/程序路径备注
    JDK/home/data/jdkJAVA 环境
    ZooKeeper/home/data/zookeeperZK 集群

    二、部署

    ZK 依赖于 JDK,所以部署 ZK 之前确保 JDK 环境正常。

    Github:https://github.com/apache/zookeeper

    2.1 JDK 环境

    三台服务器均操作。

    二进制包下载连接:

    1、下载 JDK 二进制包并解压

    mkdir -p /home/data
    tar xzf jdk-8u202-linux-x64.tar.gz -C /home/data/
    mv /home/data/jdk1.8.0_202/ /home/data/jdk
    
    • 1
    • 2
    • 3

    2、做软链接

    ln -s /home/data/jdk/bin/* /usr/bin/
    
    • 1

    3、JDK 环境验证

    java -version
    ---
    java version "1.8.0_202"
    Java(TM) SE Runtime Environment (build 1.8.0_202-b08)
    Java HotSpot(TM) 64-Bit Server VM (build 25.202-b08, mixed mode)
    
    • 1
    • 2
    • 3
    • 4
    • 5

    2.2 ZooKeeper 集群

    三台服务器均操作。

    二进制包下载连接:https://zookeeper.apache.org/releases.html

    1、互做本地解析

    192.168.56.21 zk-1
    192.168.56.22 zk-2
    192.168.56.23 zk-3
    
    • 1
    • 2
    • 3

    2、下载 ZK 二进制包并解压

    tar xzf zookeeper-3.4.10.tar.gz -C /home/data/
    mv /home/data/zookeeper-3.4.10/ /home/data/zookeeper
    
    • 1
    • 2

    3、创建数据/日志路径

    mkdir /home/data/zookeeper/{data,logs}
    
    • 1

    4、修改配置文件

    cp /home/data/zookeeper/conf/zoo_sample.cfg /home/data/zookeeper/conf/zoo.cfg
    cat /home/data/zookeeper/conf/zoo.cfg
    ---
    tickTime=2000
    initLimit=10
    syncLimit=5
    dataDir=/home/data/zookeeper/data
    dataLogDir=/home/data/zookeeper/logs
    clientPort=2181
    autopurge.snapRetainCount=500
    autopurge.purgeInterval=24
    server.1= zk-1:2888:3888
    server.2= zk-2:2888:3888
    server.3= zk-3:2888:3888
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    参数说明:

    # 基础参数说明:
    - tickTime:心跳检测时间
    - initLimit:follower连接到leader的初始化超时时间 --> 10*2000=20s
    - syncLimit:leader与follower请求应答超时时间 --> 5*2000=10s
    - dataDir:数据路径
    - dataLogDir:日志路径
    - quorumListenOnAllIPs:是否在所有可用的IP上监听来自其对等节点的连接请求,默认值为false,这意味着只在zoo.cfg中配置的服务器ip地址上监听连接请求
    - autopurge.snapRetainCount:保留的快照文件数目,默认是保留3个 --> 自动清理Zookeeper的历史数据
    - autopurge.purgeInterval:清理频率(单位是小时),默认是0,表示不开启自动清理功能 --> 自动清理Zookeeper的历史数据
    # 端口说明:
    - 2181:对Client端提供服务的端口(可自定义)
    - 2888:集群内部通信端口(可自定义)
    - 3888:选举Leader的端口(可自定义)
    # 集群说明
    server.a=zk-*:2888:3888
    a:表示唯一ServerID标识,需为不同集群节点创建与之对应的ServerID
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    以上配置好后 scp 配置文件至其他节点

    5、创建 ServerID 标识

    # zk-1
    [root@zk-1 ~]# echo "1" > /home/data/zookeeper/data/myid
    
    # zk-2
    [root@zk-2 ~]# echo "2" > /home/data/zookeeper/data/myid
    
    # zk-3
    [root@zk-3 ~]# echo "3" > /home/data/zookeeper/data/myid
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    6、启动 Zookeeper 集群

    /home/data/zookeeper/bin/zkServer.sh start
    ---
    ZooKeeper JMX enabled by default
    Using config: /home/data/zookeeper/bin/../conf/zoo.cfg
    Starting zookeeper ... STARTED
    
    • 1
    • 2
    • 3
    • 4
    • 5

    7、验证

    # zk-1
    [root@zk-1 ~]# /home/data/zookeeper/bin/zkServer.sh status
    ZooKeeper JMX enabled by default
    Using config: /home/data/zookeeper/bin/../conf/zoo.cfg
    Mode: follower
    
    # zk-2
    [root@zk-2 ~]# /home/data/zookeeper/bin/zkServer.sh status
    ZooKeeper JMX enabled by default
    Using config: /home/data/zookeeper/bin/../conf/zoo.cfg
    Mode: leader
    
    # zk-3
    [root@zk-3 ~]# /home/data/zookeeper/bin/zkServer.sh status
    ZooKeeper JMX enabled by default
    Using config: /home/data/zookeeper/bin/../conf/zoo.cfg
    Mode: follower
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    FAQ

    目前集群配置没遇到任何问题,如果你有问题,请先检测一下网络防火墙配置Selinux等。

    待补充…

  • 相关阅读:
    不要慌,选择排序也是一样简单的
    SpringBoot整合Alibaba-Dubbo和Apache-Dubbo
    空天地一体化无线光通信网络关键技术及其发展趋势
    听懂未来:AI语音识别技术的进步与实战
    typeScript--[函数定义]
    系统编程 day11 信号量 (我也不知道是什么东西,不好解释 )(和之前的信号有一些不同 (函数), 但是也有一些操作相同 ,比如说 p v 操作 , )
    【STM32】基于HAL库建立自己的低功耗模式配置库(STM32L4系列低功耗所有配置汇总)
    Stream 流式编程 ( Java 8新特性 )
    基于“小数据”的机器学习
    Docker使用及本地Yolov5打包教程
  • 原文地址:https://blog.csdn.net/IT_ZRS/article/details/125615805