搭建zookeeper集群(伪集群)

  1. jdk环境

  2. 上传zk压缩包

  3. 解压缩

  4. 复制三份
    mkdir /usr/local/zk_cluster
    cp -r zookeeper-3.4.6 /usr/local/zk_cluster/zookeeper01

  5. 在每个zookeeper目录下创建一个data目录。

  6. 在data目录下创建一个myid文件,文件名就叫做“myid”。内容就是每个实例的id。例如1、2、3
    echo 1 >> myid
    cat myid

  7. 修改配置文件。把conf目录下的zoo_sample.cfg文件改名为zoo.cfg

    # 修改以下配置
    # 第5步创建的data目录路径
    dataDir=
    # 端口号默认2181 三个zk节点端口要避免冲突
    clienPort=
    # 本机IP:客户端端口:服务端端口
    servier.1=192.168.25.130:2881:3881
    servier.2=192.168.25.130:2882:3882
    servier.3=192.168.25.130:2883:3883
    
  8. 启动每个zookeeper实例。

    bin/zkServer.sh start
    
  9. 查看zookeeper的状态:
    bin/zkServer.sh status
    ./zKCli.sh -server 127.0.0.1:2181 # 连接客户端

  • 显示根目录下、文件: ls / 使用 ls 命令来查看当前 ZooKeeper 中所包含的内容
  • 显示根目录下、文件: ls2 / 查看当前节点数据并能看到更新次数等数据
  • 创建文件,并设置初始内容: create /zk “test” 创建一个新的 znode节点“ zk ”以及与它关联的字符串 [-e] [-s] 【-e 零时节点】 【-s 顺序节点】
  • 获取文件内容: get /zk 确认 znode 是否包含我们所创建的字符串 [watch]【watch 监听】
  • 修改文件内容: set /zk “zkbak” 对 zk 所关联的字符串进行设置
  • 删除文件: delete /zk 将刚才创建的 znode 删除,如果存在子节点删除失败
  • 递归删除:rmr /zk将刚才创建的 znode 删除,子节点同时删除
  • 退出客户端: quit
  • 帮助命令: help

注意

zookeeper最近的版本中有个内嵌的管理控制台是通过jetty启动,也会占用8080 端口。
通过查看zookeeper的官方文档,发现有3种解决途径:

(1).删除jetty。
(2)修改端口。
修改方法的方法有两种,一种是在启动脚本中增加 -Dzookeeper.admin.serverPort=你的端口号.一种是在zoo.cfg中增加admin.serverPort=没有被占用的端口号
(3)停用这个服务,在启动脚本中增加"-Dzookeeper.admin.enableServer=false"