IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> zookeeper命令行操作 -> 正文阅读

[大数据]zookeeper命令行操作

1、命令行语法

命令基本语法功能描述
help显示所有的操作命令
ls path使用 ls 命令查看当前znode的子节点 -w :监听子节点变化 -s 附加次级信息
create普通创建 -s 含有序列 -e :临时(重启或者超时消失)
get path获得节点的值 【可监听】 -w : 监听子节点内容变化 -s :附加次级信息
set设置节点的具体值
stat查看节点状态
delete删除节点
deleteall递归删除节点

1.1、客户端启动

root@ubuntu:/usr/local/software/zookeeper/bin# zkCli.sh -server 192.168.44.133:2181

显示连接192.168.44.133:

[zk: 192.168.44.133:2181(CONNECTED) 0] 

1.2、显示所有操作命令

[zk: 192.168.44.133:2181(CONNECTED) 4] help
ZooKeeper -server host:port -client-configuration properties-file cmd args
	addWatch [-m mode] path # optional mode is one of [PERSISTENT, PERSISTENT_RECURSIVE] - default is PERSISTENT_RECURSIVE
	addauth scheme auth
	close 
	config [-c] [-w] [-s]
	connect host:port
	create [-s] [-e] [-c] [-t ttl] path [data] [acl]
	delete [-v version] path
	deleteall path [-b batch size]
	delquota [-n|-b] path
	get [-s] [-w] path
	getAcl [-s] path
	getAllChildrenNumber path
	getEphemerals path
	history 
	listquota path
	ls [-s] [-w] [-R] path
	printwatches on|off
	quit 
	reconfig [-s] [-v version] [[-file path] | [-members serverID=host:port1:port2;port3[,...]*]] | [-add serverId=host:port1:port2;port3[,...]]* [-remove serverId[,...]*]
	redo cmdno
	removewatches path [-c|-d|-a] [-l]
	set [-s] [-v version] path data
	setAcl [-s] [-v version] [-R] path acl
	setquota -n|-b val path
	stat [-w] path
	sync path
	version 

2、 znode 节点数据信息

2.1、查看当前znode中所包含的内容

[zk: 192.168.44.133:2181(CONNECTED) 5] ls /
[zookeeper]

2.2、查看当前节点详细数据

[zk: 192.168.44.133:2181(CONNECTED) 7] ls -s /
[zookeeper]
cZxid = 0x0
ctime = Wed Dec 31 16:00:00 PST 1969
mZxid = 0x0
mtime = Wed Dec 31 16:00:00 PST 1969
pZxid = 0x0
cversion = -1
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 0
numChildren = 1

详细信息介绍:
1)cZxid创建节点的事务zxid
每次修改Zookeeper状态都会产生一个Zookeeper事务id,事务id是Zookeeper中所有修改总的次序,如果zxid1 < zxid2,那么zxid1在zxid2之前发生

2)ctime:znode被创建的毫秒数(从1969年开始)

3)mZxidznode最后更新的事务zxid

4)mtime:znode最后修改的毫秒数(从1969年开始)

5)pZxid:znode最后更新的子节点zxid

6)cversion:znode子节点变化号,znode子节点修改次数

7)dataversionznode数据变化号

8)dataLength:znode的数据长度

9)numChildren:znode子节点数量

2.3、节点类型以及创建节点

在这里插入图片描述
持久:客户端和服务器端断开连接后,创建的节点不删除
短暂:客户端和服务器端断开连接后,创建的节点自己删除

说明:有序,顺序号是一个单调递增的计数器,由父节点维护

1)创建持久无序的
[zk: 192.168.232.1(CONNECTED) 6] ls -s /sanguo
[]
cZxid = 0xb66
ctime = Sun Dec 05 15:59:00 CST 2021
mZxid = 0xb66
mtime = Sun Dec 05 15:59:00 CST 2021
pZxid = 0xb66
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 6
numChildren = 0
[zk: 192.168.232.1(CONNECTED) 7] create /sanguo/shuguo
Created /sanguo/shuguo
[zk: 192.168.232.1(CONNECTED) 8] ls -s /sanguo
[shuguo]
cZxid = 0xb66
ctime = Sun Dec 05 15:59:00 CST 2021
mZxid = 0xb66
mtime = Sun Dec 05 15:59:00 CST 2021
pZxid = 0xb67
cversion = 1
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 6
numChildren = 1
[zk: 192.168.247.1(CONNECTED) 9]

获得节点的值

[zk: 192.168.232.1(CONNECTED) 9] get -s /sanguo
liubei
cZxid = 0xb66
ctime = Sun Dec 05 15:59:00 CST 2021
mZxid = 0xb66
mtime = Sun Dec 05 15:59:00 CST 2021
pZxid = 0xb67
cversion = 1
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 6
numChildren = 1
2)创建持久有序的

create -s /sanguo/weiguo 增加一个 -s

[zk: 192.168.232.1(CONNECTED) 12] create -s /sanguo/weiguo
Created /sanguo/weiguo0000000001
[zk: 192.168.232.1(CONNECTED) 13] ls /sanguo/
shuguo             weiguo0000000001

持久呢?退出连接再次查看是否还存在?

[zk: 192.168.232.1(CONNECTED) 13] quit
:/usr/local/software/zookeeper/bin# ./zkCli.sh -server 192.168.232.1
[zk: 192.168.232.1(CONNECTED) 0] ls /sanguo/
Path must not end with / character
[zk: 192.168.232.1(CONNECTED) 1] ls /sanguo
[shuguo, weiguo0000000001]
3)创建临时无序的
[zk: 192.168.232.1(CONNECTED) 2] create -e /sanguo/wuguo
Created /sanguo/wuguo
[zk: 192.168.232.1(CONNECTED) 3] ls /sanguo
[shuguo, weiguo0000000001, wuguo]
[zk: 192.168.232.1(CONNECTED) 4] quit
WatchedEvent state:SyncConnected type:None path:null
[zk: 192.168.232.1(CONNECTED) 0] ls /sanguo
[shuguo, weiguo0000000001]
4)创建临时有序的
[zk: 192.168.232.1(CONNECTED) 1] create -e -s /sanguo/wuguo "孙权"
Created /sanguo/wuguo0000000003
[zk: 192.168.232.1(CONNECTED) 4] quit
[zk: 192.168.232.1(CONNECTED) 0] ls /sanguo
[shuguo, weiguo0000000001]

5)修改节点数据值
[zk: 192.168.232.1(CONNECTED) 16] get /sanguo
三国
[zk: 192.168.232.1(CONNECTED) 17] set /sanguo "蜀-魏-吴"
[zk: 192.168.232.1(CONNECTED) 18] get /sanguo
蜀--

3、删除节点以及查看

3.1、删除节点

[zk: 192.168.232.1(CONNECTED) 20] ls /sanguo
[shuguo, weiguo0000000001]
[zk: 192.168.232.1(CONNECTED) 21] delete /sanguo/shuguo
[zk: 192.168.232.1(CONNECTED) 22] ls /sanguo
[weiguo0000000001]

3.2、递归删除节点

[zk: 192.168.232.1(CONNECTED) 25] delete /sanguo
Node not empty: /sanguo
[zk: 192.168.232.1(CONNECTED) 26] deleteall /sanguo
[zk: 192.168.232.1(CONNECTED) 27] ls /sanguo
Node does not exist: /sanguo

3.3、查看节点状态

[zk: 192.168.232.1(CONNECTED) 6] stat /sanguo
cZxid = 0xb7b
ctime = Sun Dec 05 18:19:03 CST 2021
mZxid = 0xb7b
mtime = Sun Dec 05 18:19:03 CST 2021
pZxid = 0xb7c
cversion = 1
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 0
numChildren = 1

4、监听器原理

监听的详细过程

1)首先要有一个main 线程

2)在main()线程中创建Zookeeper客户端,这时就会创建两个线程,一个线程负责网络连接通信 一个负责监听

3)在通信线程将注册监听事件发送给Zookeeper

4)在Zookeeper的注册监听列表中,将注册的监听事件添加到列表

5)Zookeeper监听到有数据或者路径变化,就会将这个消息发送到监听线程

6)监听线程内部调用了process()方法
在这里插入图片描述

4.1、监听节点数据变化
192.168.42.133 主机上注册监听/sanguo 节点数据变化
[zk: 192.168.42.133:2181(CONNECTED) 26] get -w /sanguo
在 192.168.42.134 主机上修改/sanguo 节点的数据
[zk: 192.168.42.134:2181(CONNECTED) 1] set  /sanguo "wuguo"192.168.42.133 主机上提示信息
WATCHER::
WatchedEvent state:SyncConnected type:NodeDataChanged
path:/sanguo

注意:在192.168.42.134再次修改 /sanguo的数据值,192.168.42.133上不会再收到监听信息,因为注册一次,只可以监听一次,在监听需要再次注册

4.2、监听节点路径变化 (节点数变化)
192.168.42.133 主机上注册监听/sanguo 节点变化
[zk: 192.168.42.133:2181(CONNECTED) 27] ls -w /sanguo
在 192.168.42.134 主机增加 /sanguo 节点
[zk: 192.168.42.134:2181(CONNECTED) 3] create /sanguo/jin "simayi"
Created /sanguo/jin
在 192.168.42.133 主机上提示信息
WATCHER::
WatchedEvent state:SyncConnected type:NodeChildrenChanged
path:/sanguo

注意:节点的路径变化,也是注册一次,生效一次,想多次生效,就需要多次注册

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-12-06 15:20:16  更:2021-12-06 15:20:42 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 9:55:59-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码