搭建zookeeper集群(伪集群)
-
jdk环境
-
上传zk压缩包
-
解压缩
-
复制三份
mkdir /usr/local/zk_cluster
cp -r zookeeper-3.4.6 /usr/local/zk_cluster/zookeeper01 -
在每个zookeeper目录下创建一个data目录。
-
在data目录下创建一个myid文件,文件名就叫做“myid”。内容就是每个实例的id。例如1、2、3
echo 1 >> myid
cat myid -
修改配置文件。把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
-
启动每个zookeeper实例。
bin/zkServer.sh start
-
查看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"