zoukankan      html  css  js  c++  java
  • linux单机部署zk集群

    1、环境

    系统:CentOS Linux release 7.6.1810

    jdk:java version "1.8.0_141"

    zk:apache-zookeeper-3.6.0

    部署目录:/opt/app

    2、部署

    安装zk

    # 创建实例目录
    mkdir -p /opt/app/zookeeper/{zk1,zk2,zk3}
    cd /opt/app/zookeeper/zk1
    # 下载zk
    wget https://archive.apache.org/dist/zookeeper/zookeeper-3.6.0/apache-zookeeper-3.6.0-bin.tar.gz
    # 解压
    tar -xf apache-zookeeper-3.6.0-bin.tar.gz 
    # 为了方便,修改名字
    mv apache-zookeeper-3.6.0-bin zookeeper

    实例部署如图所示

    配置zk

    # 创建data目录
    cd /opt/app/zookeeper/zk1/zookeeper
    mkdir data
    # 创建myid文件
    cd data
    touch myid
    # 在myid文件中写入1
    # 修改配置文件
    cd /opt/app/zookeeper/zk1/zookeeper/conf
    cp zoo_sample.cfg zoo.cfg
    vim zoo.cfg
    # 修改以下配置,保存退出
    dataDir=/opt/app/zookeeper/zk1/zookeeper/data
    clientPort=2181
    server.1=127.0.0.1:2888:3888
    server.2=127.0.0.1:2889:3889
    server.3=127.0.0.1:2890:3890

    如图所示

     配置zk2、zk3实例

    # 把zk1下的实例分别cp到zk2、zk3目录下
    # 分别修改zk2、zk3 data目录下myid文件为2和3
    vim /opt/app/zookeeper/zk2/zookeeper/data/myid
    vim /opt/app/zookeeper/zk3/zookeeper/data/myid
    # 分别修改conf目录下zoo.cfg文件
    cd /opt/app/zookeeper/zk2/zookeeper/conf
    vim zoo.cfg
    # 修改clientPort端口为2182
    cd /opt/app/zookeeper/zk3/zookeeper/conf
    vim zoo.cfg
    # 修改clientPort端口为2183

    启动实例

    启动的时候可以再开个窗口观察下日志有否异常,日志目录:/opt/app/zookeeper/zk1/zookeeper/logs,有异常就处理

    # 启动实例zk1
    cd /opt/app/zookeeper/zk1/zookeeper/bin
    ./zkServer.sh start
    # 启动实例zk2
    cd /opt/app/zookeeper/zk2/zookeeper/bin
    ./zkServer.sh start
    # 启动实例zk3
    cd /opt/app/zookeeper/zk3/zookeeper/bin
    ./zkServer.sh start
    # 如果出现8080端口被占用的情况,则修改下zk1、zk2、zk3下配置zoo.cfg文件,通过查阅官方文档,发现这是Zookeeper3.5版本的新特性:这是Zookeeper AdminServer,默认使用8080端口,我们可以把三个实例修改成不同的端口即可。
    zk1:zoo.cfg中添加:admin.serverPort=8080
    zk2:zoo.cfg中添加:admin.serverPort=8180
    zk3:zoo.cfg中添加:admin.serverPort=8280
    然后重启,观察日志。

    观察zk集群状态

    zk1状态 

    cd /opt/app/zookeeper/zk1/zookeeper/bin

    ./zkServer.sh status

    zk2状态 

    cd /opt/app/zookeeper/zk2/zookeeper/bin

    ./zkServer.sh status

    zk3状态 

    cd /opt/app/zookeeper/zk3/zookeeper/bin

    ./zkServer.sh status

    可以看到现在实例zk3为主,zk1、zk2为从,我们可以尝试停掉主节点看看zk的主从切换是否正常

    cd /opt/app/zookeeper/zk3/zookeeper/bin

    ./zkServer.sh stop

    再启动zk3,查看状态,可以看到现在实例zk3已经变成从节点

    观察下实例zk1、zk2哪个变为主节点

    如上图可以看到实例zk2已经变成主节点,说明zk的选举也正常,zk单机集群部署完成!

  • 相关阅读:
    2017 《Java》预备作业计科1502宋奇蕊
    在 Kubernetes 上调度 GPU 资源
    ceph
    网络设备的 38 个知识点
    CF1066 ABCD
    单调队列优化动态规划
    对拍
    【关于此博客】
    使用Morphia框架操作mongodb
    通过mybatis读取数据库数据并提供rest接口访问
  • 原文地址:https://www.cnblogs.com/sxFu/p/15528809.html
Copyright © 2011-2022 走看看