一, 导入库
以下库存放在目录 lib 中:
- audience-annotations-0.5.0.jar
- jline-0.9.94.jar
- log4j-1.2.17.jar
- netty-3.10.6.Final.jar
- slf4j-api-1.7.25.jar
- slf4j-log4j12-1.7.25.jar
以下库存放在 zookeeper 安装的根目录中:
zookeeper-3.4.12.jar
二, ZooKeeper 对象的操作
zookeeper 对象的创建
- String connectString = "hadoop1:2181,hadoop2:2181,hadoop3:2181";
- int sessionTimeout = 2000;
- ZooKeeper zookeeper = new ZooKeeper(connectString, sessionTimeout, new Watcher() {
- @Override
- public void process(WatchedEvent event) {
- ...
- }
- });
其中:
connectString 是连接 zookeeper 的信息
sessionTimeout 是会话超时时间, 也就是当一个 zookeeper 超过该时间没有心跳, 则认为该节点故障.
Watcher 是一个监控器, 一旦触发监控就会回调 process 方法, 触发的事件会存在 event 对象中.
ZooKeeper 对象的常用方法
方法名 | 返回值 | 作用 | 各参数 | 备注 |
String create(final String path, byte data[], List<ACL> acl,CreateMode createMode) | 返回值是 path 的字符串 | 创建节点 |
| |
Stat setData(final String path, byte data[], int version) | 节点状态对象,里面包含节点的各种信息,包括节点更改的版本,节点创建的日期等等。 | 设置节点的数据 |
| |
List<String> getChildren(String path, boolean watch) | 节点下子节点集合,只有节点名称,不是全路径 | 获取子节点列表 |
| |
byte[] getData(String path, boolean watch, Stat stat) | 该节点的值 | 获取该节点的值 |
| |
void delete(final String path, int version) | 删除节点 |
|
来源: http://www.bubuko.com/infodetail-2601509.html