1、开启zookeeper集群并分别进入zookeeper的安装目录下,我的服务器分别为hadoop1、hadoop2和hadoop3
2、在hadoop1中开启客户端,监听hadoop1的端口号2181,输入:
./bin/zkCli.sh -server hadoop1:2181
这里可能会出错,原因是你所在的目录下没有./bin/zkCli.sh文件, 输入此命令行时应该在bin目录的上一层目录下。
3、创建永久无序节点,在hadoop1刚刚开启的客户端中,输入:
create /zookeeper/mytest "myzookeeper"
创建节点格式:
创建永久节点:(节点内容可以不填,默认为null)
无序:create 节点路径 "节点内容" 例如:create /work/houduan "springboot"
有序:create -s 节点路径 "节点内容"
创建临时节点:
无序:create -e 节点路径 "节点内容"
有序:create -e -s 节点路径 "节点内容"
注意:
节点内容只能是连续的字符串,中间不能有空格!!!不然会报下面的错误:
![](https://i-blog.csdnimg.cn/blog_migrate/ce1e2cc0fac12cf76078df4c130cfbac.png)
4、分别在hadoop2和hadoop3中开启客户端,输入:
./bin/zkCli.sh -server hadoop1:2181
用hadoop2监听节点:/zookeeper/mytest,输入:
get -w /zookeeper/mytest
![](https://i-blog.csdnimg.cn/blog_migrate/fb03a65b1fc68657b475fd6adf125439.png)
会自动弹出节点的值
用hadoop3修改节点的值,输入:
set /zookeeper/mytest "ischanged"
此时,hadoop2监听到节点的变化,但不会输出变化后的节点值,而且监听只会监听一次,再次修改节点的值,hadoop2不会有反应。
输入:get /zookeeper/mytest,可以查看节点变化后的值。