Zookeeper的Shell操作:
1.连接到Zookeeper服务
[root@service zookeeper0]# bin/zkCli.sh -server localhost:2181
2.使用ls命令查看当前Zookeeper中包含的内容。
# ls /
3.创建新的znode,使用create命令
# create /zk testCRUD
4.获取节点中的值,get命令
# get /zk
5.使用set命令来对znode关联的字符串进行设置
# set /zk myData
6.删除节点
# delete /zk
Zookeeper的java API操作
public class ZooKeeperTest {
private ZooKeeper zookeeper;
/**
* 连接zookeeper
* @throws Exception
*/
@Before
public void setUp() throws Exception {
String conStr = "service.bigdata.jack.cn:2181";
int sessionTimeout = 30000;
zookeeper = new ZooKeeper(conStr, sessionTimeout , new Watcher() {
@Override
public void process(WatchedEvent event) {
System.out.println("已经触发了" + event.getType() + "事件!");
}
});
}
@Test
public void testCRUD() throws Exception {
// 创建一个目录节点
zookeeper.create("/testZK", "testZKData".getBytes(), Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
// 创建一个子目录节点
zookeeper.create("/testZK/childOne", "childOne".getBytes(),Ids.OPEN_ACL_UNSAFE,CreateMode.PERSISTENT);
System.out.println(new String(zookeeper.getData("/testZK",false,null)));
// 取出子目录节点列表
System.out.println(zookeeper.getChildren("/testZK",true));
// 修改子目录节点数据
zookeeper.setData("/testZK/childOne","modifyChildDataOne".getBytes(),-1);
System.out.println("目录节点状态:["+zookeeper.exists("/testZK",true)+"]");
// 创建另外一个子目录节点
zookeeper.create("/testZK/childTwo", "childTwo".getBytes(),
Ids.OPEN_ACL_UNSAFE,CreateMode.PERSISTENT);
System.out.println(new String(zookeeper.getData("/testZK/childTwo",true,null)));
// 删除子目录节点
zookeeper.delete("/testZK/childTwo",-1);
zookeeper.delete("/testZK/childOne",-1);
// 删除父目录节点
zookeeper.delete("/testZK",-1);
}
@After
public void cleanUp() throws InterruptedException {
zookeeper.close();
}
}
1.连接到Zookeeper服务
[root@service zookeeper0]# bin/zkCli.sh -server localhost:2181
2.使用ls命令查看当前Zookeeper中包含的内容。
# ls /
3.创建新的znode,使用create命令
# create /zk testCRUD
4.获取节点中的值,get命令
# get /zk
5.使用set命令来对znode关联的字符串进行设置
# set /zk myData
6.删除节点
# delete /zk
Zookeeper的java API操作
public class ZooKeeperTest {
private ZooKeeper zookeeper;
/**
* 连接zookeeper
* @throws Exception
*/
@Before
public void setUp() throws Exception {
String conStr = "service.bigdata.jack.cn:2181";
int sessionTimeout = 30000;
zookeeper = new ZooKeeper(conStr, sessionTimeout , new Watcher() {
@Override
public void process(WatchedEvent event) {
System.out.println("已经触发了" + event.getType() + "事件!");
}
});
}
@Test
public void testCRUD() throws Exception {
// 创建一个目录节点
zookeeper.create("/testZK", "testZKData".getBytes(), Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
// 创建一个子目录节点
zookeeper.create("/testZK/childOne", "childOne".getBytes(),Ids.OPEN_ACL_UNSAFE,CreateMode.PERSISTENT);
System.out.println(new String(zookeeper.getData("/testZK",false,null)));
// 取出子目录节点列表
System.out.println(zookeeper.getChildren("/testZK",true));
// 修改子目录节点数据
zookeeper.setData("/testZK/childOne","modifyChildDataOne".getBytes(),-1);
System.out.println("目录节点状态:["+zookeeper.exists("/testZK",true)+"]");
// 创建另外一个子目录节点
zookeeper.create("/testZK/childTwo", "childTwo".getBytes(),
Ids.OPEN_ACL_UNSAFE,CreateMode.PERSISTENT);
System.out.println(new String(zookeeper.getData("/testZK/childTwo",true,null)));
// 删除子目录节点
zookeeper.delete("/testZK/childTwo",-1);
zookeeper.delete("/testZK/childOne",-1);
// 删除父目录节点
zookeeper.delete("/testZK",-1);
}
@After
public void cleanUp() throws InterruptedException {
zookeeper.close();
}
}