ZooKeeper学习笔记(四)——shell客户端命令操作
ZooKeeper客户端命令行操作
启动服务端
[simon@hadoop102 zookeeper-3.4.10]$ bin/zkServer.sh start
查看状态信息
Using config: /opt/module/zookeeper-3.4.10/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
[simon@hadoop102 zookeeper-3.4.10]$ bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /opt/module/zookeeper-3.4.10/bin/../conf/zoo.cfg
Mode: follower
启动客户端
[simon@hadoop102 zookeeper-3.4.10]$ bin/zkCli.sh
查看当前znode中所包含的内容
[zk: localhost:2181(CONNECTED) 1] ls /
[zookeeper]
查看当前节点的详细数据
[zk: localhost:2181(CONNECTED) 2] ls2 /
[zookeeper]
cZxid = 0x0
ctime = Thu Jan 01 08:00:00 CST 1970
mZxid = 0x0
mtime = Thu Jan 01 08:00:00 CST 1970
pZxid = 0x0
cversion = -1
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 0
numChildren = 1
分别创建两个普通节点
[zk: localhost:2181(CONNECTED) 3] create /simon "user"
[zk: localhost:2181(CONNECTED) 0] create /simon/a "a"
Created /simon/a
获得节点的值
[zk: localhost:2181(CONNECTED) 1] get /simon
user
cZxid = 0x100000004
ctime = Thu Oct 24 21:59:31 CST 2019
mZxid = 0x100000004
mtime = Thu Oct 24 21:59:31 CST 2019
pZxid = 0x100000007
cversion = 1
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 4
numChildren = 1 [zk: localhost:2181(CONNECTED) 2] get /simon/a
a
cZxid = 0x100000007
ctime = Thu Oct 24 22:19:10 CST 2019
mZxid = 0x100000007
mtime = Thu Oct 24 22:19:10 CST 2019
pZxid = 0x100000007
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 1
numChildren = 0
创建临时节点
[zk: localhost:2181(CONNECTED) 3] create -e /simon/temp "temp"
Created /simon/temp
(1)在客户端可以查看到
[zk: localhost:2181(CONNECTED) 5] ls /simon
[a, temp](2)退出当前客户端之后再重启客户端
[zk: localhost:2181(CONNECTED) 6] quit
Quitting...
2019-10-24 22:22:00,789 [myid:] - INFO [main:ZooKeeper@684] - Session: 0x26dfe0bc0f60002 closed
2019-10-24 22:22:00,790 [myid:] - INFO [main-EventThread:ClientCnxn$EventThread@519] - EventThread shut down for session: 0x26dfe0bc0f60002 [simon@hadoop102 zookeeper-3.4.10]$ bin/zkCli.sh(3)再次查看根目录下临时节点已经被删除
[zk: localhost:2181(CONNECTED) 0] ls /simon
[a]创建带序号的节点
(1)先创建一个普通的根节点
/simon/b[zk: localhost:2181(CONNECTED) 1] create /simon/b "b"
Created /simon/b(2)创建一个带序号的节点
[zk: localhost:2181(CONNECTED) 1] create -s /simon/b/ba "ba"
Created /simon/b/ba0000000001
[zk: localhost:2181(CONNECTED) 2] create -s /simon/b/bb "bb"
Created /simon/b/bb0000000002
[zk: localhost:2181(CONNECTED) 3] create -s /simon/b/bc "bc"
Created /simon/b/bc0000000003如果原来没有节点序号,序号从0开始依次递增。如果原节点下已经有2个节点,则再排序时从2开始,以此类推。
修改节点数据的值
[zk: localhost:2181(CONNECTED) 4] set /simon/b "B" [zk: localhost:2181(CONNECTED) 5] get /simon/b
[zk: localhost:2181(CONNECTED) 5] get /simon/b
B
cZxid = 0x10000000b
ctime = Thu Oct 24 22:23:07 CST 2019
mZxid = 0x100000012
mtime = Thu Oct 24 22:26:16 CST 2019
pZxid = 0x100000011
cversion = 4
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 1
numChildren = 4节点值的变化监听
(1)在Hadoop104主机上注册监听
/simon节点数据的变化[zk: localhost:2181(CONNECTED) 0] get /simon watch #监听根节点用:get 子节点:ls
user
cZxid = 0x100000004
ctime = Thu Oct 24 21:59:31 CST 2019
mZxid = 0x100000004
mtime = Thu Oct 24 21:59:31 CST 2019
pZxid = 0x10000000b
cversion = 4
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 4
numChildren = 2(2)在Hadoop103主机上修改
/simon节点的数据[zk: localhost:2181(CONNECTED) 0] set /simon "hello world"
cZxid = 0x100000004
ctime = Thu Oct 24 21:59:31 CST 2019
mZxid = 0x100000015
mtime = Thu Oct 24 22:29:32 CST 2019
pZxid = 0x10000000b
cversion = 4
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 11
numChildren = 2(3)在Hadoop104节点上观察数据的变化的监听
[zk: localhost:2181(CONNECTED) 1]
WATCHER:: WatchedEvent state:SyncConnected type:NodeDataChanged path:/simon节点的子节点变化监听(路劲变化)
(1)在Hadoop104主机上注册监听
/simon节点的子节点变化[zk: localhost:2181(CONNECTED) 0] ls /simon watch
[a, b](2)在Hadoop103主机
/simon节点创建子节点[zk: localhost:2181(CONNECTED) 4] create /simon/c "c"
Created /simon/c(3)观察Hadoop104主机收到的子节点变化的监听
[zk: localhost:2181(CONNECTED) 4] ls /simon watch
WATCHER:: WatchedEvent state:SyncConnected type:NodeChildrenChanged path:/simon删除节点
[zk: localhost:2181(CONNECTED) 6] delete /simon/b/bd递归删除节点
[zk: localhost:2181(CONNECTED) 7] rmr /simon/b查看节点的状态
[zk: localhost:2181(CONNECTED) 8] stat /simon
cZxid = 0x100000004
ctime = Thu Oct 24 21:59:31 CST 2019
mZxid = 0x100000015
mtime = Thu Oct 24 22:29:32 CST 2019
pZxid = 0x100000021
cversion = 6
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 11
numChildren = 2
ZooKeeper学习笔记(四)——shell客户端命令操作的更多相关文章
- ZooKeeper学习笔记四:使用ZooKeeper实现一个简单的分布式锁
作者:Grey 原文地址: ZooKeeper学习笔记四:使用ZooKeeper实现一个简单的分布式锁 前置知识 完成ZooKeeper集群搭建以及熟悉ZooKeeperAPI基本使用 需求 当多个进 ...
- Zookeeper学习笔记——2 Shell和Java API的使用
ZooKeeper的使用一般都接触不到,因为平时工作甚少直接使用ZK.但是通过手动操作一下ZK,还是能对其中的门道了解各一二. shell 常用命令 help 查看所有支持的命令 [zk: local ...
- SQL学习笔记四之MySQL数据操作
阅读目录 一 介绍 二 插入数据INSERT 三 更新数据UPDATE 四 删除数据DELETE 五 查询数据SELECT 六 权限管理 一 介绍 MySQL数据操作: DML =========== ...
- 吴裕雄--天生自然ShellX学习笔记:Shell test 命令
Shell中的 test 命令用于检查某个条件是否成立,它可以进行数值.字符和文件三个方面的测试. 实例演示: num1=100 num2=100 if test $[num1] -eq $[num2 ...
- 吴裕雄--天生自然ShellX学习笔记:Shell printf 命令
printf 命令模仿 C 程序库(library)里的 printf() 程序. printf 由 POSIX 标准所定义,因此使用 printf 的脚本比使用 echo 移植性好. printf ...
- 吴裕雄--天生自然ShellX学习笔记:Shell echo命令
Shell 的 echo 指令与 PHP 的 echo 指令类似,都是用于字符串的输出.命令格式: echo string 您可以使用echo实现更复杂的输出格式控制. 1.显示普通字符串: echo ...
- ELK学习笔记之使用curl命令操作elasticsearch
0x00 _cat系列 _cat系列提供了一系列查询elasticsearch集群状态的接口.你可以通过执行curl -XGET localhost:9200/_cat 1. 获取所有_cat系列的操 ...
- CMake学习笔记四-CMake常用命令
CMake常用命令 PROJECT PROJECT(projectname [CXX] [C] [Java]) 指定工程名称,并可指定工程支持的语言.支持语言列表可忽略,默认支持所有语言 SET ...
- RabbitMQ学习笔记四:RabbitMQ命令(附疑难问题解决)
本来今天是想做RabbitMQ之优先级队列的,但是,在RabbitMQ Server创建queue时,增加优先级的最大值,头脑发热写了9999999,导致电脑内存直接飙到100%,只能重启电脑,并卸载 ...
随机推荐
- 多层nginx中的压缩问题 api接口>1M数据的返回浏览器 网关
基础 前端异步请求,局部刷新,加大最大等待时间 nginx开启压缩 进阶 多级nginx的压缩 实践测试: 每级都要开启压缩 gizp on: 最外层开启,但最内层没有开启 最外层没有开启 最外层.最 ...
- docker 安装redis 并配置外网可以访问
1, docker 拉去最新版本的redis docker pull redis #后面可以带上tag号, 默认拉取最新版本 2, docker安装redis container 安装之前去定义我们的 ...
- Docker 容器日志分析
查看容器日志 先使用 docker run -it --rm -d -p 80:80 nginx:1.15.8-alpine 命令启动一个nginx容器.如果没有异常,会得到容器ID如 d2408 ...
- openresty开发系列24--openresty中lua的引入及使用
openresty开发系列24--openresty中lua的引入及使用 openresty 引入 lua 一)openresty中nginx引入lua方式 1)xxx_by_lua ---> ...
- Xadmin权限管理
需求分析: 1.判断用户是否登陆,未登陆就不能进入其他页面2.为用户分配不同的权限,用户的操作只能在权限范围之内3.将用户可操作的权限显示在页面山,点击能进入该页面操作 模型表的建立 1.对每个用户建 ...
- Qt编写气体安全管理系统14-邮件转发
一.前言 邮件转发功能和短信告警功能基本一致,都是在判断报警后触发,可能稍微不同的是,邮件转发需要依赖互联网,而且能够发送的数据量很大,没有短信60个汉字的局限(当然短信也可以拆分多条发送,但是费钱, ...
- Qt编写自定义控件72-提示进度条
一.前言 我们在很多的安装包中,在安装过程中,经常可以在底部看到一个漂亮的进度条,上面悬浮着显示对应的进度,然后底部进度多种颜色渐变展示,Qt自带的进度条或者操作系统的进度条样式,不够炫,这次索性直接 ...
- Python初级 2 记住内存和变量的练习
一.数据类型: 数字:3, 5, 100, 50.35 字符串:"abc","wang" 字符串或数字可以由名字来表示,名字也叫变量 二.算术表达式: 形如3 ...
- SpringBoot 获取配置 @Value
@Value注解可以在代码中直接取到相应的值 如在application.yml中 # 自定义属性 leysen: xcx: url: aaa 1.java代码里的属性值是非静态的,直接在属性上加@V ...
- 【翻译】Flink 异步I / O访问外部数据
本文来自官网翻译: Asynchronous I/O for External Data Access 需要异步I / O操作 先决条件 异步I / O API 超时处理 结果顺序 活动时间 容错保证 ...