zoukankan      html  css  js  c++  java
  • zookeeper伪集群安装

    记录下zookeeper伪分布式搭建的过程,假设系统已经配置好了JAVA环境。

    1.准备环境

      linux服务器一台,下载某个版本的zookeeper压缩包,下载链接:http://apache.claz.org/zookeeper/zookeeper-3.5.3-beta/zookeeper-3.5.3-beta.tar.gz

    2.生成多个节点

      因为是伪分布式环境,所以是在一台机器上搭建多个节点。在/data/zk/目录下生成三个文件夹,分别为:zk0,zk1,zk2,将上面下载的压缩包拷贝进各个文件夹并解压,解压时注意,最好不要带z参数,不然可能会报错。

    3.修改配置文件

      先由模板生成配置文件:

      cp /data/zk/zk0/zookeeper-3.5.3-beta/conf/zoo_sample.cfg /data/zk/zk0/zookeeper-3.5.3-beta/conf/zoo.cfg

      cp /data/zk/zk1/zookeeper-3.5.3-beta/conf/zoo_sample.cfg /data/zk/zk1/zookeeper-3.5.3-beta/conf/zoo.cfg

      cp /data/zk/zk2/zookeeper-3.5.3-beta/conf/zoo_sample.cfg /data/zk/zk2/zookeeper-3.5.3-beta/conf/zoo.cfg

      修改配置文件,增加以下部分

      dataDir=/data/zk/zk0/zookeeper-3.5.3-beta/data(注意每个配置文件中zk*的路径不同)

      clientPort=2181(zk0是2181,zk1是2182,zk2是2183,端口不能重复否则启动时会出现端口已被占用错误。)

      4lw.commands.whitelist=*(此配置是支持四字节命令的,线上环境慎重添加,可能会带来安全问题,不开次配置不能使用下面的telnet命令)

      server.0=127.0.0.1:2880:3880

      server.1=127.0.0.1:2881:3881
      server.2=127.0.0.1:2882:3882

      server.A=B:C:D     其中 A 是一个数字,就是myid里的那个数字,表示这个是第几号服务器;B 是这个服务器的 ip 地址,C和D是两个端口,C、D两个端口相互也不能重复(仅限伪分布式模式下)。

    4.生成myid文件,伪分布式模式下通过此文件id来区分每个节点,所以值不能重复

      mkdir /data/zk/zk0/zookeeper-3.5.3-beta/data

      echo 0 > /data/zk/zk0/zookeeper-3.5.3-beta/data/myid

      mkdir /data/zk/zk1/zookeeper-3.5.3-beta/data

      echo 1 > /data/zk/zk1/zookeeper-3.5.3-beta/data/myid

      mkdir /data/zk/zk2/zookeeper-3.5.3-beta/data

      echo 2 > /data/zk/zk2/zookeeper-3.5.3-beta/data/myid

    5.启动

      /data/zk/zk0/zookeeper-3.5.3-beta/bin/zkServer.sh start /data/zk/zk0/zookeeper-3.5.3-beta/conf/zoo.cfg
      /data/zk/zk1/zookeeper-3.5.3-beta/bin/zkServer.sh start /data/zk/zk1/zookeeper-3.5.3-beta/conf/zoo.cfg
      /data/zk/zk2/zookeeper-3.5.3-beta/bin/zkServer.sh start /data/zk/zk2/zookeeper-3.5.3-beta/conf/zoo.cfg

      正常情况会输出:Starting zookeeper ... STARTED

      最好是将节点全启动起来之后在进行连接等操作。

    6.检查各个节点的状态

      /data/zk/zk0/zookeeper-3.5.3-beta/bin/zkServer.sh status
      /data/zk/zk1/zookeeper-3.5.3-beta/bin/zkServer.sh status
      /data/zk/zk2/zookeeper-3.5.3-beta/bin/zkServer.sh status

      正常会输出:

        ZooKeeper JMX enabled by default
        Using config: /data/zk/zk0/zookeeper-3.5.3-beta/bin/../conf/zoo.cfg
        Client port found: 2181. Client address: localhost.
        Mode: follower(follower表示角色)

    7.查看节点状态、关闭节点

      /data/zk/zk0/zookeeper-3.5.3-beta/bin/zkServer.sh status
      /data/zk/zk1/zookeeper-3.5.3-beta/bin/zkServer.sh status
      /data/zk/zk2/zookeeper-3.5.3-beta/bin/zkServer.sh status

      /data/zk/zk0/zookeeper-3.5.3-beta/bin/zkServer.sh stop
      /data/zk/zk1/zookeeper-3.5.3-beta/bin/zkServer.sh stop
      /data/zk/zk2/zookeeper-3.5.3-beta/bin/zkServer.sh stop

    8.client连接测试

      /data/zk/zk1/zookeeper-3.5.3-beta/bin/zkCli.sh -server 127.0.0.1:2181

      正常会输出:Welcome to ZooKeeper!

      然后可以输入正常的client命令来操作zookeeper。

    9.除了可以用client连接操作,zookeeper还支持用telnet使用特殊命令来操作,这个称为四字节命令,具体详见:https://zookeeper.apache.org/doc/r3.5.3-beta/zookeeperAdmin.html#sc_clusterOptions

    • 1. 可以通过命令:echo stat|nc 127.0.0.1 2181 来查看哪个节点被选择作为follower或者leader
    • 2. 使用echo ruok|nc 127.0.0.1 2181 测试是否启动了该Server,若回复imok表示已经启动。
    • 3. echo dump| nc 127.0.0.1 2181 ,列出未经处理的会话和临时节点。
    • 4. echo kill | nc 127.0.0.1 2181 ,关掉server
    • 5. echo conf | nc 127.0.0.1 2181 ,输出相关服务配置的详细信息。
    • 6. echo cons | nc 127.0.0.1 2181 ,列出所有连接到服务器的客户端的完全的连接 / 会话的详细信息。
    • 7. echo envi |nc 127.0.0.1 2181 ,输出关于服务环境的详细信息(区别于 conf 命令)。
    • 8. echo reqs | nc 127.0.0.1 2181 ,列出未经处理的请求。
    • 9. echo wchs | nc 127.0.0.1 2181 ,列出服务器 watch 的详细信息。
    • 10. echo wchc | nc 127.0.0.1 2181 ,通过 session 列出服务器 watch 的详细信息,它的输出是一个与 watch 相关的会话的列表。
    • 11. echo wchp | nc 127.0.0.1 2181 ,通过路径列出服务器 watch 的详细信息。它输出一个与 session 相关的路径。
  • 相关阅读:
    vue递归组件的实现
    Vue左滑组件slider的实现
    vue 全局引用jq(打包后可能会遇到的问题)
    vue simple框架打包遇到报错问题
    HTML5 FormData实现文件上传实例
    长连接、短连接、长轮询和WebSocket
    解决axios IE11 Promise对象未定义
    Html5的map在实际使用中遇到的问题及解决方案
    Js参数RSA加密传输,jsencrypt.js的使用
    jQuery火箭图标返回顶部代码
  • 原文地址:https://www.cnblogs.com/likui360/p/7798944.html
Copyright © 2011-2022 走看看