Zookeeper之ACL和进程协作

实现节点的增删

  • 打开 Eclipse开发工具,单击File选择“New”→“ Java project”,新建名称
  • 为“zookeeper”的Java项目,单击右键“zookeeper项目,选择“New”→“ Package”。
  • 输入包名称“ cn.dzqc.zk"
  • 新建java类,选中包名并单击右键,选择“New”→“Class”
  • 在name项输入“ZookeeperDemo"类名称
  • 在创建的项目目录下创建文件夹lib,通过选中文件夹“src”并点击右键,选择“New”→“SourceFolder”,在“Folder
    name”项输入lib
  • 在lib文件夹下的添加7个jar包。分别是zookeeper-3.4.12.jar,audience-annotations-0.5.0.jar,jline-0.9.94.jar,netty-3.10.6.Final.jar,log4j-1.2.17.jar,slf4j-api-1.7.25.jar,slf4j-log4j12-1.7.25.jar。zookeeper-3.4.12.jar文件在zookeeper-3.4.12.tar.gz解压缩的根目录下,其余6个jar文件在lib文件夹下。
  • 选中lib下的所有jar包,单击右键,然后选择“ Add to Build Path”即可把所有jar包添加到path环境中

编写代码

import org.apache.zookeeper.CreateMode;
import org.apache.zookeeper.ZooDefs.Ids;
import org.apache.zookeeper.ZooKeeper;

public class ZookeeperDemo {
	public static void main(String[] args) throws Exception{  
		//创建连接,指定Zookeeper集群节点,连接超时时间,服务是否监控
        ZooKeeper zk = new ZooKeeper("192.168.86.150:2181,192.168.86.160:2181,191.169.86.170:2181", 3000, null);  
        System.out.println("=========创建节点===========");  
	// zk.exists() 判断节点是否存在
	if(zk.exists("/test", false) == null)  {  
	//Ids.OPEN_ACL_UNSAFE 标识节点开启接入权限
	//CreateMode.PERSISTENT 持久化目录节点
	zk.create("/test", "znode1".getBytes(), Ids.OPEN_ACL_UNSAFE, 		CreateMode.PERSISTENT);  
        }  
        System.out.println("==========查看节点是否安装成功============");  
		System.out.println(new String(zk.getData("/test", false, null)));  

        System.out.println("=========修改节点的数据==========");  
zk.setData("/test", "zNode2".getBytes(), -1);  
        System.out.println("========查看修改的节点是否成功=========");  
System.out.println(new String(zk.getData("/test", false, null)));  

        System.out.println("=======删除节点==========");  
zk.delete("/test", -1);  
        System.out.println("==========查看节点是否被删除============");  
        System.out.println("节点状态:" + zk.exists("/test", false));  
zk.close();  
    }   
}  

启动集群

  • 启动服务,在每台虚拟机上执行启动命令,用jps查看,如图所示。 执行命令zkServer.sh start
  • 启动完成后,查看服务状态。 执行命令zkServer.sh status

运行项目

Zookeeper之ACL和进程协作_第1张图片

你可能感兴趣的:(大数据)