`
forchenyun
  • 浏览: 312279 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Zookeeper ZNode操作

阅读更多

 

Zookeeper API中包如下:

org.apache.zookeeper 
org.apache.zookeeper.data 
org.apache.zookeeper.server 
org.apache.zookeeper.server.quorum 
org.apache.zookeeper.server.upgrade

其中开发者比较常用的包都集中在前两个包中

关于ZooKeeper的安装省略,请参加之前的文章。

下面我们开始用api操作ZooKeeper tree

首先,我们应该新建一个Zookeeper实例:(注意节点创建的时候path命名需要注意,有相关规则的)

ZooKeeper zk = new ZooKeeper("ip:port",3000,new MyWathcer());

 Ipport替换为你Zookeeper serviceip及服务端口。注意一下第三个参数,它是一个watcher,实现了org.apache.zookeeper.Watcher接口(实现它的process方法即可),对于节点的更新删除等操作会通知客户端,这部分可以参考watches的说明。

接下来,我们新建一个节点:

 

Id id = new Id("ip","你的zookeeper server的ip");//注意第一个参数代表通过ip验证
ACL acl1 = new ACL(ZooDefs.Perms.ALL,id);//这里表示具备all权限
List<ACL> list = new ArrayList<ACL>();
list.add(acl1);
System.out.println(zk.create("/zk_heih","yun".getBytes(),list, CreateMode.PERSISTENT));//这里表示创建持久的节点
 

 

Id类实际上是指你要的访问控制列表ACL应用的目标,而ACL代表应用到该节点的操作权限,最后的CreateMode.PERSISTENT代表你的创建节点的类型,是持久的还是瞬时的。最后方法会返回该节点的path。(如果想建立节点为某节点的子节点,那么写完整path即可,如 /zk_test/zk_ heih

下面,我们修改节点数据(data

 

int version = zk.exists("/zk_ heih ", new MyWathcer()).getVersion();
System.out.println(zk.setData("/zk_ heih ", "my".getBytes(), version));
 

 

请注意versionznode在修改时会比较version和服务器上的是否一致,如果不一致的话会抛出异常,当然你也可以将version参数至为-1.那么会匹配所有version,也就是说强制的修改。

然后我们可以查看某节点的数据

Stat stat = new Stat();
byte[] data = zk.getData("/zk_ heih ", new MyWathcer(), stat);//stat会在方法内被修改
System.out.println(new String(data));
System.out.println(stat);
 

方法会给出相关的statstat里面包含了如czid等等,具体参照api

最后我们删除刚才创建的节点:

int version = zk.exists("/zk_ heih ", new MyWathcer()).getVersion();
zk.delete("/zk_ heih ", version);
 

最后,如果你英语够好,还是看官方的文档吧:

ZooKeeper Programmer's Guide

http://hadoop.apache.org/zookeeper/docs/r3.3.0/zookeeperProgrammers.html

 

1
0
分享到:
评论
1 楼 yinshi.nc 2011-10-12  
引用
Id id = new Id("ip","你的zookeeper server的ip");//注意第一个参数代表通过ip验证


这里有问题, 第二个参数应该是你的开发机ip

相关推荐

    Zookeeper 原生api zkClient Curator操作

    3. **ZNode操作**:包括创建(`create()`)、读取(`getData()`)、更新(`setData()`)、删除(`delete()`)ZNode等。 4. **事务操作**:可以使用`multi()`方法执行一系列原子性的操作,确保要么全部成功,要么全部...

    ZooKeeper中的节点(ZNode):深入理解与实践

    通过理解ZNode的特点和操作,我们可以在实际应用中灵活地使用ZooKeeper来实现各种复杂的分布式功能。无论是数据存储、服务发现还是分布式锁,ZooKeeper都能够提供高效、可靠的解决方案。 通过本文的介绍和代码示例...

    zookeeper 操作代码 部分可用,

    在代码实现中,ZooKeeper的操作主要包括创建、读取、更新和删除ZNodes,以及监听ZNode变化。例如,`create()`方法用于创建ZNode,`exists()`用于检查ZNode是否存在,`getData()`和`setData()`分别用于获取和更新...

    zookeeper之节点基本操作(一).doc

    在ZooKeeper中,节点(也称为znode)是用于存储数据的基本单元。通过`create`命令可以创建节点,并且可以指定不同的节点类型。 1. **普通节点**: - 普通节点是一种持久存在的节点,即使客户端会话结束,该节点...

    java客户端使用api访问zookeeper,增删改查Znode

    接下来,我们来看如何进行基本的Znode操作。 1. 创建Znode: 创建Znode可以通过`create()`方法实现。例如,创建一个名为"/my-znode"的持久化节点: ```java ZooKeeper zookeeper = new ZooKeeper("localhost:2181...

    zookeeper 客户端操作

    - **ZNode**:Zookeeper中的基本数据单元,每个ZNode都有路径、数据、版本号和ACL。 - **持久化和临时节点**:`-e`参数创建临时节点,会随着客户端断开连接而消失;默认创建的是持久节点。 - **顺序节点**:`-s`...

    ZooKeeper 基本操作.md

    ZooKeeper 支持多种基本操作,用于管理和访问 ZNode。下面详细介绍这些基本操作: **3.1 创建节点(Create)** - **命令格式:** `create &lt;path&gt; &lt;data&gt; [flags]` - **参数说明:** - `&lt;path&gt;`:待创建节点的路径...

    Java实现ZooKeeper的zNode监控

    在设计监控场景时,需要考虑到zNode的创建、修改和删除操作对应的处理逻辑。在本示例中,我们使用了ZooKeeper的Watcher机制来监控/watcher节点的变化。当/watcher节点数据发生变化时,程序将打印当前的数据内容和...

    zookeeper版本为zookeeper-3.4.10.tar.gz

    ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终将简单易用的接口和性能高效、功能稳定的系统提供给用户。...

    2、zookeeper基本操作及应用示例(shell、java api、应用场景示例)

    在本文中,我们将深入理解Zookeeper的基本操作,包括通过shell客户端进行交互,以及使用Java API进行编程,并探讨其在实际应用中的示例。 一、Zookeeper Shell操作 1. 连接Zookeeper客户端:使用`zkCli.sh`命令...

    ZooKeeper 客户端的使用(二).

    ZooKeeper 提供了一个简单的命令行工具 `zkCli.sh`,通过它可以直接与 ZooKeeper 交互,执行基本的操作如创建、读取、更新和删除 ZNode,以及查看集群状态。 7. **安全性** ZooKeeper 支持 SASL 认证和 ACL...

    zookeeper 3.6.3 源码下载

    3. **Watcher**:ZooKeeper提供了一种事件监听机制,称为Watcher,允许客户端注册对特定ZNode的兴趣,当ZNode状态发生变化时,ZooKeeper会通知相应的客户端。 **ZooKeeper的工作原理** 1. **主备选举(Leader ...

    zookeeper-3.4.12版本

    Zookeeper提供了丰富的命令行工具(`zkCli.sh`),用于创建、删除、读取、更新ZNode以及查看集群状态等操作。例如: - `create`:创建ZNode。 - `delete`:删除ZNode。 - `get`:读取ZNode数据。 - `set`:更新ZNode...

    zookeeper示例代码。

    除了基本的ZNode操作,还支持异步调用、事件监听等功能,适用于开发需要实时监控ZooKeeper变化的应用。 在`zookeeperTest`这个示例中,你可以看到如何使用这些概念来实现具体的功能,比如创建ZNode、设置ACL、使用...

    zookeeper客户端连接工具: zktools

    这款工具通常包含了一些实用的功能,如查看ZNode(ZooKeeper中的数据节点)信息,执行数据操作,监控会话状态,以及进行集群健康检查等。通过zktools,开发者可以更加直观地管理和调试ZooKeeper集群,提高开发和运维...

    zookeeper-3.8.0安装包下载

    Zookeeper 的核心概念包括节点(Znode)、会话(Session)和观察者(Watcher)。Znode 是 Zookeeper 数据存储的基本单位,类似于文件系统中的节点,分为临时节点和永久节点两种。会话是客户端与 Zookeeper 服务器...

    ZooKeeper笔记.pdf

    - **API**:Zookeeper提供了丰富的Java和C语言接口,用于创建、删除、更新ZNode,查询ZNode状态,设置Watcher等操作。 - **ZAB协议**:Zookeeper Atomic Broadcast(ZAB)是Zookeeper实现一致性的重要协议,负责在...

    zookeeper界面访问工具

    Zookeeper界面访问工具,如ZooInspector,是为用户提供的一种图形化界面,用于更直观地查看和操作Zookeeper的数据节点和配置信息。下面将详细介绍Zookeeper的核心概念以及ZooInspector的使用方法。 一、Zookeeper...

    zookeeper-3.4.6.zip

    ZooKeeper 提供了丰富的命令行工具 `zkCli.sh`(在Linux/Unix系统中)和 `zkCli.cmd`(在Windows系统中),用于交互式操作ZNode,例如创建、删除、查看节点等。 5. **应用场景** - **配置管理**:分布式应用的...

    ZooKeeper-分布式过程协同技术详解 和从Paxos到Zookeeper

    分布式锁是实现并发控制的关键,ZooKeeper提供了可重入的读写锁,确保并发操作的正确性。 此外,书中还会涉及ZooKeeper的安装、配置和监控,以及常见问题的排查和优化。对于开发者来说,理解ZooKeeper的API和最佳...

Global site tag (gtag.js) - Google Analytics