文档章节

ZooKeeper命令行操作

JackieYeah
 JackieYeah
发布于 2016/07/11 01:20
字数 1134
阅读 3453
收藏 3

ZooKeeper命令行脚本

ZooKeeper安装目录下的 bin 目录下提供了一些命令行工具。

脚本说明
zkCleanup.sh用于清理 ZooKeeper 事务日志文件和对应的数据快照文件
zkCli.shZooKeeper 客户端
zkEnv.sh设置 ZooKeeper 环境变量
zkServer.sh启动、停止和重启 ZooKeeper 服务

本文主要演示如何使用 ZooKeeper 的客户端与 ZooKeeper 服务器进行交互。


##连接ZooKeeper服务器

输入以下命令可以连接到 ZooKeeper 服务器:

zkCli.sh

如果连接成功, 会输出以下信息, 限于篇幅, 中间会省略一些信息:

Connecting to localhost:2181
2016-07-10 23:22:18,200 [myid:] - INFO  [main:Environment@100] - Client environment:zookeeper.version=3.4.8--1, built on 02/06/2016 03:18 GMT
2016-07-10 23:22:18,202 [myid:] - INFO  [main:Environment@100] - Client environment:host.name=master
2016-07-10 23:22:18,203 [myid:] - INFO  [main:Environment@100] - Client environment:java.version=1.7.0_80
........................
2016-07-10 23:22:18,207 [myid:] - INFO  [main:ZooKeeper@438] - Initiating client connection, connectString=localhost:2181 sessionTimeout=30000 watcher=org.apache.zookeeper.ZooKeeperMain$MyWatcher@39165e21
Welcome to ZooKeeper!
........................

WATCHER::

WatchedEvent state:SyncConnected type:None path:null
[zk: localhost:2181(CONNECTED) 0]

因为没有显示地指定 ZooKeeper 服务器的地址, 默认将会连接到本机的 ZooKeeper 服务器。可以使用下面的方式指定连接的 ZooKeeper 服务器:

zkCli.sh -server slave01:2181

连接信息如下:

Connecting to slave01:2181
..................................
WATCHER::

WatchedEvent state:SyncConnected type:None path:null
[zk: slave01:2181(CONNECTED) 0] 

可以看到已经成功连接到 slave01 上的 ZooKeeper 服务器。

在 shell 中, 输入 "help" 可以得到客户端可以执行的命令列表:

输入图片说明


##常用命令行操作 ###查看(ls) ####用法 使用 ls 命令可以列出 ZooKeeper 指定节点下的所有子节点。需要注意的是只能查看指定节点下的第一级子节点。具体用法如下:

ls path [watch]

其中 path 用于指定节点路径。 ####示例 ls

在根节点 "/" 下面默认有一个 "/zookeeper" 的保留节点。 ###创建(create) ####用法 使用 create 命令可以创建一个 znode, 具体用法如下:

create [-s] [-e] path data acl 

其中, -s 用于指定节点是否是顺序的, -e 用于指定节点是否是临时的, -s 和 -e 是可选的, 默认创建持久节点。path 用于指定节点路径, data 表示节点数据, acl 用于权限控制, 默认情况下不做权限控制。 ####示例

create

可以看到 "/zk_test" 节点已经成功创建。

###读取(get) ####用法 使用 get 命令可以获取 ZooKeeper 指定节点的数据内容和相关信息, 具体用法如下:

get path [watch]

其中 path 指定的是节点路径。 ####示例 get

输出的第一行是节点 "/zk_test" 的数据内容, cZxid 是创建 "/zk_test" 节点的事务ID, ctime 表示节点创建的时间, mZxid 是最后更新 "/zk_test" 节点的事务ID, mtime 是最后更新 "/zk_test" 节点的时间, cversion 表示子节点更新的次数, dataVersion 表示数据版本, aclVersion 表示 ACL 更新的次数, 如果节点是一个临时节点的话 ephemeralOwner 表示节点拥有者的会话ID, 如果不是临时节点, ephemeralOwner 的值将会是 0, dataLength 表示数据长度, numChildren 表示子节点数量, 等等。 ###更新(set) ####用法 使用 set 命令可以更新节点的数据, 具体用法如下:

set path data [version]

其中 path 指定节点路径, data 是更新后的数据,在 ZooKeeper 中, znode 中的数据是有版本概念的, version 就是用来指定更新操作是基于 znode 的哪一个数据版本。 ####示例 set

执行完 set 命令后, "/zk_test" 节点数据已经被更新成 test_data_updated。从上图可以看到, dataVersion 的值由 0 变成了 1。

updated

###删除(delete) ####用法 使用 delete 命令可以删除指定的节点, 具体用法如下:

delete path [version]

其中 path 指定节点路径, version 参数和 set 命令中的 version 参数一样。

####示例 delete

从上图可以看到, "/zk_test" 节点成功被删除。需要注意的是, 如果要删除的节点有子节点, 则删除会失败。如下:

delete_child

从上图可以看到, "/zk_test" 节点删除失败, 提示 "Node not empty: /zk_test", 因为 "/zk_test" 节点包含一个子节点 "/test_child"。 ###统计(stat) 使用 stat 命令可以输出节点的统计信息, 具体用法如下:

stat path [watch]

其中 path 指定节点路径。 ####用法 stat ###历史(history) 使用 history 命令可以查看客户端中执行的历史命令。 history ###退出(quit)和关闭(close) 使用 quit 和 close 命令均可以关闭会话。 quit

close ###其它 其它命令这里不再过多描述。


##参考资料 http://zookeeper.apache.org/doc/current/zookeeperStarted.html#sc_ConnectingToZooKeeper

© 著作权归作者所有

上一篇: ZooKeeper简单API
下一篇: ZooKeeper配置详解
JackieYeah
粉丝 45
博文 70
码字总数 90004
作品 0
武汉
程序员
私信 提问
ZooKeeper伪分布式集群安装及使用

ZooKeeper伪分布式集群安装及使用 让Hadoop跑在云端系列文章,介绍了如何整合虚拟化和Hadoop,让Hadoop集群跑在VPS虚拟主机上,通过云向用户提供存储和计算的服务。 现在硬件越来越便宜,一台...

张升强
2013/10/31
371
1
ZooKeeper伪分布式集群安装及使用

前言 ZooKeeper是Hadoop家族的一款高性能的分布式协作的产品。在单机中,系统协作大都是进程级的操作。分布式系统中,服务协作都是跨服务器才能完成的。在ZooKeeper之前,我们对于协作服务大...

_夏天的风_
2014/08/25
225
0
ZooKeeper教程资源收集(简介/原理/示例/解决方案)

菩提树下的杨过: ZooKeeper 笔记(1) 安装部署及hello world ZooKeeper 笔记(2) 监听数据变化 ZooKeeper 笔记(3) 实战应用之【统一配置管理】 ZooKeeper 笔记(4) 实战应用之【消除单点故障】...

easonjim
2017/09/05
0
0
kafka在windows上的安装、运行

kafka在windows上的安装、运行 目录(?)[+] 1.简介 Kafka是一种高吞吐量的分布式发布订阅消息系统。详细介绍可查阅官网:kafka官网 2.环境搭建 2.1 安装JDK 下载地址:jre下载 有关jdk的安装不...

yucaifu1989
2018/04/21
0
0
大数据教程(3.6):zookeeper的命令行客户端+znode数据结构类型+监听等功能_

上一篇文章,博主介绍了zookeeper集群的搭建全过程;今天博主将为大家分享的是zookeeper的命令行客户端使用、zookeeper的数据结构和监听功能。 zookeeper启动与关闭服务的命令: 一、zookeep...

em_aaron
2018/07/30
90
0

没有更多内容

加载失败,请刷新页面

加载更多

只需一步,在Spring Boot中统一Restful API返回值格式与统一处理异常

统一返回值 在前后端分离大行其道的今天,有一个统一的返回值格式不仅能使我们的接口看起来更漂亮,而且还可以使前端可以统一处理很多东西,避免很多问题的产生。 比较通用的返回值格式如下:...

晓月寒丶
今天
59
0
区块链应用到供应链上的好处和实际案例

区块链可以解决供应链中的很多问题,例如记录以及追踪产品。那么使用区块链应用到各产品供应链上到底有什么好处?猎头悬赏平台解优人才网小编给大家做个简单的分享: 使用区块链的最突出的优...

猎头悬赏平台
今天
27
0
全世界到底有多少软件开发人员?

埃文斯数据公司(Evans Data Corporation) 2019 最新的统计数据(原文)显示,2018 年全球共有 2300 万软件开发人员,预计到 2019 年底这个数字将达到 2640万,到 2023 年达到 2770万。 而来自...

红薯
今天
63
0
Go 语言基础—— 通道(channel)

通过通信来共享内存(Java是通过共享内存来通信的) 定义 func service() string {time.Sleep(time.Millisecond * 50)return "Done"}func AsyncService() chan string {retCh := mak......

刘一草
今天
57
0
Apache Flink 零基础入门(一):基础概念解析

Apache Flink 的定义、架构及原理 Apache Flink 是一个分布式大数据处理引擎,可对有限数据流和无限数据流进行有状态或无状态的计算,能够部署在各种集群环境,对各种规模大小的数据进行快速...

Vincent-Duan
今天
59
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部