ZooKeeper分布式安装部署和客户端命令行操作
1. 分布式安装部署
集群规划:在hadoop、hadoop101和hadoop102三个节点上部署Zookeeper。
#在hadoop上使用xsync同步的其它节点上 xsync zookeeper-3.4.10/ #hadoop节点上已经配置好了zoo.cfg,所以分发之后不需要再配置
配置服务器编号:
#在/opt/module/zookeeper-3.4.10/zkData目录下创建一个myid的文件 touch myid #编辑myid文件 vi myid #在文件中添加与server对应的编号 0 #拷贝配置好的zookeeper到其他机器上 xsync myid #并分别在hadoop101、hadoop102上修改myid文件中内容为1、2
配置zoo.cfg文件:
#打开zoo.cfg文件 vim zoo.cfg #增加如下配置 server.0=hadoop:2888:3888 server.1=hadoop101:2888:3888 server.2=hadoop102:2888:3888 #同步zoo.cfg配置文件 xsync zoo.cfg
配置参数解读:
server.A=B:C:D
- A是一个数字,表示这个是第几号服务器;集群模式下配置一个文件myid,这个文件在dataDir目录下,这个文件里面有一个数据就是A的值,Zookeeper启动时读取此文件,拿到里面的数据与zoo.cfg里面的配置信息比较从而判断到底是哪个server。
- B是这个服务器的ip地址;
- C是这个服务器与集群中的Leader服务器交换信息的端口;
- D是万一集群中的Leader服务器挂了,需要一个端口来重新进行选举,选出一个新的Leader,而这个端口就是用来执行选举时服务器相互通信的端口。
#启动Zookeeper bin/zkServer.sh start #查看状态 bin/zkServer.sh status
2. 客户端命令行操作
命令基本语法 | 功能描述 |
---|---|
help | 显示所有操作命令 |
ls path [watch] | 使用 ls 命令来查看当前znode中所包含的内容 |
ls2 path [watch] | 查看当前节点数据并能看到更新次数等数据 |
create | 普通创建 -s 含有序列 -e 临时(重启或者超时消失) |
get path [watch] | 获得节点的值 |
set | 设置节点的具体值 |
stat | 查看节点状态 |
delete | 删除节点 |
rmr | 递归删除节点 |
#启动客户端
bin/zkCli.sh
#显示所有操作命令
help
#查看当前znode中所包含的内容
ls /
#查看当前节点详细数据
ls2 /
#分别创建2个普通节点
create /sanguo "sanguo"
create /sanguo/shuguo "shuguo"
#获得节点的值
get /sanguo
#创建短暂节点
create -e /sanguo/wuguo "wuguo"
#在当前客户端是能查看到的
ls /sanguo
结果:[wuguo, shuguo]
#退出当前客户端然后再重启客户端
quit
bin/zkCli.sh
#再次查看根目录下短暂节点已经删除
ls /sanguo
结果:[shuguo]
#创建带序号的节点
#先创建一个普通的根节点/sanguo/weiguo
create /sanguo/weiguo "weiguo"
#创建带序号的节点
create -s /sanguo/weiguo/xiaoqiao "xiaoqiao"
create -s /sanguo/weiguo/daqiao "daqiao"
#如果原来没有序号节点,序号从0开始依次递增。如果原节点下已有2个节点,则再排序时从2开始,以此类推。
#修改节点数据值
set /sanguo/weiguo "weiguo2"
#节点的值变化监听
##在hadoop102主机上注册监听/sanguo节点数据变化
get /sanguo watch
##在hadoop101主机上修改/sanguo节点的数据
set /sanguo "sanguo2"
##观察hadoop102主机收到数据变化的监听
#节点的子节点变化监听(路径变化)
##在hadoop102主机上注册监听/sanguo节点的子节点变化
ls /sanguo watch
##在hadoop101主机/sanguo节点上创建子节点
create /sanguo/jin "jin"
##观察hadoop102主机收到子节点变化的监听
#删除节点
delete /sanguo/jin
#递归删除节点
rmr /sanguo/shuguo
#查看节点状态
stat /sanguo