文章目录
Hadoop框架Zookeeper Java API
引入zookeeper依赖
去Maven官网引入Zookeeper依赖。
选择3.4.6版本,复制到IDEA的pom文件里
<!-- https://mvnrepository.com/artifact/org.apache.zookeeper/zookeeper -->
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>3.4.6</version>
</dependency>
新建ZOOKEEPER包
新建ZKJavaAPI
测试连接
1、新建连接
这里需要抛出异常
// 1、新建连接
ZooKeeper zk = new ZooKeeper(
"master:2181,node1:2181,node2:2181"
, 100000
, null
);
2、创建临时节点
这里需要抛出异常
zk.create("/test1"
,"abcdefg".getBytes()
, ZooDefs.Ids.OPEN_ACL_UNSAFE
, CreateMode.PERSISTENT
);
3、运行测试
package com.liangzai.ZOOKEEPER;
import org.apache.zookeeper.CreateMode;
import org.apache.zookeeper.KeeperException;
import org.apache.zookeeper.ZooDefs;
import org.apache.zookeeper.ZooKeeper;
import java.io.IOException;
public class ZKJavaAPI {
public static void main(String[] args) throws IOException, InterruptedException, KeeperException {
// 1、新建连接
ZooKeeper zk = new ZooKeeper(
"master:2181,node1:2181,node2:2181"
, 100000
, null
);
// 2、创建临时节点
zk.create("/test1"
,"abcdefg".getBytes()
, ZooDefs.Ids.OPEN_ACL_UNSAFE
, CreateMode.EPHEMERAL
);
}
}
控制台输出结果:
log4j:WARN No appenders could be found for logger (org.apache.zookeeper.ZooKeeper).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
Process finished with exit code 0
- 去ZK里查看运行结果
#启动ZK
zkCli.sh -server node1:2181
#ZK Shell
ls /
get /test1
运行结果:
注意我这里并没有zk.close();
因为创建的是临时节点,断开了就会被删除
这里是运行成功的。
下面我将详细介绍。
ZKJavaAPI
名词解析
- ZooDefs.Ids :控制所创建的ZNODE的权限
- OPEN_ACL_UNSAFE :完全开放的ACL,任何连接的客户端都可以操作该属性znode
- CREATOR_ALL_ACL :只有创建者才有ACL权限
- READ_ACL_UNSAFE :只能读取ACL
- CreateMode :创建的ZNODE的类型
- PERSISTENT :永久创建,连接断开不会删除
- EPHEMERAL :创建临时节点,连接断开即删除
创建永久节点
ZooKeeper zk;
@Before
// 创建连接
public void init() throws