- 一.配置开发环境
- 二.在 src/main/java 下新建一个OperateZK.java
- 三.启动zookeeper
- 1.进入zookeeper安装目录
- 2.启动服务(三台都要执行)
在之前的testHadoop下新建模块testZK,修改的pom.xml文件(没有之前的testhadoop的话就重新新建一个maven项目,参考java操作HDFS)
testZK com.qf 1.0-SNAPSHOT 4.0.0 org.apache.zookeeper zookeeper 3.4.10 junit junit 4.12 1.8 1.8
二.在 src/main/java 下新建一个OperateZK.java
文件的内容为:
import org.apache.zookeeper.CreateMode;
import org.apache.zookeeper.ZooDefs;
import org.apache.zookeeper.ZooKeeper;
import org.apache.zookeeper.data.Stat;
import org.junit.Test;
import java.nio.charset.StandardCharsets;
import java.util.List;
public class OperateZK {
@Test
public void testList() throws Exception {
String conn = "192.168.154.10:2181,192.168.154.11:2181,192.168.154.12:2181";
ZooKeeper zk = new ZooKeeper(conn, 5000, null);
//列出根目录下的子节点
List children = zk.getChildren("/", false);
for (String child : children) {
System.out.println(child);
}
}
@Test
public void testCreate() throws Exception {
String conn = "192.168.154.10:2181,192.168.154.11:2181,192.168.154.12:2181";
ZooKeeper zk = new ZooKeeper(conn, 5000, null);
String s = zk.create("/a", "Tom".getBytes(StandardCharsets.UTF_8), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
System.out.println(s);
zk.close();
}
@Test
public void testGet() throws Exception {
String conn = "192.168.154.10:2181,192.168.154.11:2181,192.168.154.12:2181";
ZooKeeper zk = new ZooKeeper(conn, 5000, null);
Stat stat = new Stat();
System.out.println(stat.toString());
//获取接根节点的数据
byte[] a = zk.getData("/a", false, stat);
System.out.println(stat.toString());
System.out.println(new String(a));
zk.close();
}
public static void main(String[] args) throws Exception {
new OperateZK().testList();
//new OperateZK().testCreate();不要重复执行此命令,要重复执行此程序这一行记得注释掉。
new OperateZK().testCreate();
new OperateZK().testGet();
}
}
三.启动zookeeper 1.进入zookeeper安装目录
cd /usr/local/src/zookeeper/bin2.启动服务(三台都要执行)
zkServer.sh start
启动zookeeper后就可以运行OperateZK.java了



