ZooKeeper 部署

集群模式

  1.  准备好三台互联网的 Linux 服务器,IP分别为192.169.0.1、192.168.0.2,192.168.0.3。并且每台服务器都安装了 Java 运行环境

  2. 下载 ZooKeeper 安装包,解压到一个目录,比如 /opt/zookeeper/ 目录下,同时约定 %ZK_HOME% 代表该目录

  3. 配置文件 zoo.cfg,初次使用 ZooKeeper,需要将 %ZK_HOME%/conf 目录下的 zoo_sample.cfg 文件拷贝一份为 zoo.cfg 并且按照如下代码进行简单配置即可:

    tickTime=2000
    dataDir=/opt/zookeeper/data/zk
    dataLogDir=/opt/zookeeper/logs/zk
    clientPort=2181
    initLimit=5
    syncLimit=2
    server.1=192.168.0.1:2888:3888
    server.2=192.168.0.2:2888:3888
    server.3=192.168.0.3:2888:3888
    • 集群模式下,集群中的每台机器都需要感知到整个集群是有哪几台机器组成,在配置文件中按照 server.id=host:port:port 配置,每一行都代表一个机器配置,其中 id 被称为 Server ID ,用来标识该机器在集群中的机器序列号,并且在每台 ZooKeeper 机器上都需要在数据目录 (dataDir=/opt/zookeeper/data/zk) 下创建一个 myid 文件,该文件只有一行内容,并且是一个数字,即对应于每台机器上的 Server ID 数字

    • 集群模式下,所有机器上的 zoo.cfg 文件的内容应该是一致的

    • myid 文件中只有一个数字,即一个 Server ID 。例如 server.1 的 myid 文件内容就是“1”。确保每台服务器的 myid 文件中的数字不同,并且和自己所在机器的 zoo.cfg 中  server.id=host:port:port 的 id 值一致, id 范围是 1~255

  4. 创建 myid 文件

  5. 按照相同的步骤,为其他服务器都配置好 zoo.cfg 和 myid 文件

  6. 启动服务,使用 %ZK_HOME%/bin 目录下的 zkServer.sh 脚本启动 ZooKeeper

    sh zkServer.sh start
    ZooKeeper JMX enabled by default
    Using config: /Users/chars/development/zookeeper/zookeeper-1/bin/../conf/zoo.cfg
    -n Starting zookeeper ... 
    STARTED
  7. 验证服务器,输入 telnet 192.168.0.1 2181 后再输入 stat 命令进行服务器启动验证

    ➜ telnet 127.0.0.1 2181
    Trying 127.0.0.1...
    Connected to localhost.
    Escape character is '^]'.
    stat
    Zookeeper version: 3.4.9-1757313, built on 08/23/2016 06:50 GMT
    Clients:
     /127.0.0.1:64573[0](queued=0,recved=1,sent=0)
    
    Latency min/avg/max: 0/0/0
    Received: 1
    Sent: 0
    Connections: 1
    Outstanding: 0
    Zxid: 0x1300000000
    Mode: leader
    Node count: 43

单机模式

  1. 单机模式和集群模式配置上唯一的区别就在机器列表上,在单机模式的 zoo.cfg 文件中,只有 server.1 这一项
    tickTime=2000
    dataDir=/opt/zookeeper/data/zk
    dataLogDir=/opt/zookeeper/logs/zk
    clientPort=2181
    initLimit=5
    syncLimit=2
    server.1=192.168.0.1:2888:3888
  2. 验证服务器,输入 telnet 127.0.0.1 2181 后再输入 stat 命令进行服务器启动验证

    ➜ telnet 127.0.0.1 2181
    Trying 127.0.0.1...
    Connected to localhost.
    Escape character is '^]'.
    stat
    Zookeeper version: 3.4.9-1757313, built on 08/23/2016 06:50 GMT
    Clients:
     /127.0.0.1:64623[0](queued=0,recved=1,sent=0)
    
    Latency min/avg/max: 0/0/0
    Received: 1
    Sent: 0
    Connections: 1
    Outstanding: 0
    Zxid: 0x1300000003
    Mode: standalone
    Node count: 39
  3. 单机模式集群模式下输出的服务器验证信息基本一致,只有 Mode 属性不一样单机模式显示的是 standalone ,集群模式显示的是 leader,还有可能显示的是 follower

伪集群模式

  1. 准备好三个 %ZK_HOME% ,/opt/zookeeper-1/、 /opt/zookeeper-2/、 /opt/zookeeper-3/

  2. 配置 zookeeper-1 的 zoo.cfg

    tickTime=2000
    dataDir=/opt/zookeeper/data/zk1
    dataLogDir=/opt/zookeeper/logs/zk1
    clientPort=2181
    initLimit=5
    syncLimit=2
    server.1=localhost:2888:3888
    server.2=localhost:2889:3889
    server.3=localhost:2890:3890
  3. 配置 zookeeper-2的 zoo.cfg

    tickTime=2000
    dataDir=/opt/zookeeper/data/zk2
    dataLogDir=/opt/zookeeper/logs/zk2
    clientPort=2182
    initLimit=5
    syncLimit=2
    server.1=localhost:2888:3888
    server.2=localhost:2889:3889
    server.3=localhost:2890:3890
  4. 配置 zookeeper-3的 zoo.cfg
    tickTime=2000
    dataDir=/opt/zookeeper/data/zk3
    dataLogDir=/opt/zookeeper/logs/zk3
    clientPort=2183
    initLimit=5
    syncLimit=2
    server.1=localhost:2888:3888
    server.2=localhost:2889:3889
    server.3=localhost:2890:3890
  5. 依次启动 zookeeper-1 、zookeeper-2 、zookeeper-3

  6. 验证服务器,输入 telnet 127.0.0.1 2181 后再输入 stat 命令进行服务器启动验证

    ➜ telnet 127.0.0.1 2181
    Trying 127.0.0.1...
    Connected to localhost.
    Escape character is '^]'.
    stat
    Zookeeper version: 3.4.9-1757313, built on 08/23/2016 06:50 GMT
    Clients:
     /127.0.0.1:64867[0](queued=0,recved=1,sent=0)
    
    Latency min/avg/max: 0/0/0
    Received: 1
    Sent: 0
    Connections: 1
    Outstanding: 0
    Zxid: 0x1300000003
    Mode: follower
    Node count: 39
  7. 验证服务器,输入 telnet 127.0.0.1 2182 后再输入 stat 命令进行服务器启动验证

    ➜ telnet 127.0.0.1 2182
    Trying 127.0.0.1...
    Connected to localhost.
    Escape character is '^]'.
    stat
    Zookeeper version: 3.4.9-1757313, built on 08/23/2016 06:50 GMT
    Clients:
     /127.0.0.1:64878[0](queued=0,recved=1,sent=0)
    
    Latency min/avg/max: 0/0/0
    Received: 1
    Sent: 0
    Connections: 1
    Outstanding: 0
    Zxid: 0x1400000000
    Mode: leader
    Node count: 39
  8. 验证服务器,输入 telnet 127.0.0.1 2183 后再输入 stat 命令进行服务器启动验证

    ➜ telnet 127.0.0.1 2183
    Trying 127.0.0.1...
    Connected to localhost.
    Escape character is '^]'.
    stat
    Zookeeper version: 3.4.9-1757313, built on 08/23/2016 06:50 GMT
    Clients:
     /127.0.0.1:64881[0](queued=0,recved=1,sent=0)
    
    Latency min/avg/max: 0/0/0
    Received: 1
    Sent: 0
    Connections: 1
    Outstanding: 0
    Zxid: 0x1300000003
    Mode: follower
    Node count: 39
原文地址:https://www.cnblogs.com/cmdra/p/5907441.html