Zookeeper--05---客户端API操作
Posted 高高for 循环
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Zookeeper--05---客户端API操作相关的知识,希望对你有一定的参考价值。
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
客户端API操作
依赖
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>RELEASE</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.8.2</version>
</dependency>
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>3.5.7</version>
</dependency>
前提:
- 保证 hadoop102、hadoop103、hadoop104服务器上 服务器上 Zookeeper集群服务端启动。
1.创建 ZooKeeper客户端
public class zkClient
// 注意:逗号左右不能有空格
private String connectString = "hadoop102:2181,hadoop103:2181,hadoop104:2181";
private int sessionTimeout = 2000;
private ZooKeeper zkClient;
@Before
public void init() throws IOException
zkClient = new ZooKeeper(connectString, sessionTimeout, new Watcher()
@Override
public void process(WatchedEvent watchedEvent)
// System.out.println("-------------------------------");
// List<String> children = null;
// try
// children = zkClient.getChildren("/", true);
//
// for (String child : children)
// System.out.println(child);
//
//
// System.out.println("-------------------------------");
// catch (KeeperException e)
// e.printStackTrace();
// catch (InterruptedException e)
// e.printStackTrace();
//
);
2.创建子节点
@Test
public void create() throws KeeperException, InterruptedException
String nodeCreated = zkClient.create("/atguigu", "ss.avi".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
create 方法
- String path, 节点路径
- byte data[], 存储内容
- List acl, 权限
- CreateMode createMode 节点类型 (持久 还是 临时节点)
acl----- 权限
CreateMode -----节点类型 (持久 还是 临时节点)
- 持久节点
- 持久序号节点
- 临时节点
- 临时序号节点
- Container节点
- TTL节点
3.获取子节点 并监听节点变化
@Before
public void init() throws IOException
zkClient = new ZooKeeper(connectString, sessionTimeout, new Watcher()
@Override
public void process(WatchedEvent watchedEvent)
);
@Test
public void getChildren() throws KeeperException, InterruptedException
List<String> children = zkClient.getChildren("/", true);
for (String child : children)
System.out.println(child);
// 延时
Thread.sleep(Long.MAX_VALUE);
注意设置的监听,只监听一次,如果重复监听,得设置监听得process再次注册
4.判断 Znode是否存在
@Test
public void exist() throws KeeperException, InterruptedException
Stat stat = zkClient.exists("/atguigu", false);
System.out.println(stat==null? "not exist " : "exist");
以上是关于Zookeeper--05---客户端API操作的主要内容,如果未能解决你的问题,请参考以下文章