六、Java API操作zookeeper节点
前文
- 一、CentOS7 hadoop3.3.1安装(单机分布式、伪分布式、分布式
- 二、JAVA API实现HDFS
- 三、MapReduce编程实例
- 四、Zookeeper3.7安装
- 五、Zookeeper的Shell操作
pom.xml文件增加依赖
<!-- Zookeeper依赖-->
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>3.7.0</version>
</dependency>
新建java文件:ZookeeperTest
/**
* @author LEHOSO
* @date 2021/11/21
* @apinote
*/
public class ZookeeperTest {
public static void main(String[] args) throws Exception {
// 初始化ZooKeeper实例(zk地址、会话超时时间,与系统默认一致, watcher)
//步骤一:创建Zookeeper客户端
//参数1:zk地址;参数2:会话超时时间(与系统默认一致);参数3:监视器
ZooKeeper zk = new ZooKeeper(
"192.168.142.10:2181," +
"192.168.142.20:2181," +
"192.168.142.30:2181", 300000, new Watcher() {
@Override
//监控所有被触发的事件(也就是在这里进行事件的处理)
public void process(WatchedEvent watchedEvent) {
System.out.println("事件类型为:" + watchedEvent.getType());
System.out.println("事件发生的路径:" + watchedEvent.getPath());
System.out.println("通知状态为:" + watchedEvent.getState());
}
});
//步骤二:创建目录节点
//参数1:要创建的节点路径;参数2:节点数据;参数3:节点权限;参数4:节点类型
zk.create("/testRootPath", "testRootData".getBytes(),
Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
//步骤三:创建子目录节点
zk.create("/testRootPath/testChildPathOne", "testChildPathOne".getBytes(),
Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
//步骤四:获取目录节点数据
//参数1:存储节点数据的路径;
//参数2:是否需要监控此节点(true/false)
//参数3:stat节点的统计信息(一般设置null)
System.out.println("testRootData节点数据为:" +
new String(zk.getData("/testRootPath", false, null)));
//步骤五:获取子目录节点数据
// 取出子目录节点列表
System.out.println(zk.getChildren("/testRootPath", true));
//步骤六:修改子目录节点数据,使得监听触发
//参数1:存储子目录节点数据的路径;
//参数2:要修改的数据;
//参数3:预期要匹配的版本(设置为-1,则可匹配任何节点的版本)
zk.setData("/testRootPath/testChildPathOne", "modifyChildDataOne".getBytes(), -1);
//步骤七:判断目录节点是否存在
System.out.println("目录节点状态[" + zk.exists("/testRootPath", true) + "]");
//步骤八:删除子目录节点
zk.delete("/testRootPath/testChildPathOne", -1);
//步骤九:删除目录节点
zk.delete("/testRootPath", -1);
zk.close();
}
}
GitHub文件下载
六、Java API操作zookeeper节点的更多相关文章
- Java API操作ZooKeeper
创建会话 package org.zln.zk; import org.apache.zookeeper.WatchedEvent; import org.apache.zookeeper.Watch ...
- Java API 操作Zookeeper
一.依赖 <dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zookee ...
- zookeeper的java api操作
zookeeper的java api操作 创建会话: Zookeeper(String connectString,int sessionTimeout,Watcher watcher) Zookee ...
- MongoDB Java API操作很全的整理
MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写,一般生产上建议以共享分片的形式来部署. 但是MongoDB官方也提供了其它语言的客户端操作API.如下图所示: 提供了C.C++ ...
- Java curator操作zookeeper获取kafka
Java curator操作zookeeper获取kafka Curator是Netflix公司开源的一个Zookeeper客户端,与Zookeeper提供的原生客户端相比,Curator的抽象层次更 ...
- hadoop2-HBase的Java API操作
Hbase提供了丰富的Java API,以及线程池操作,下面我用线程池来展示一下使用Java API操作Hbase. 项目结构如下: 我使用的Hbase的版本是 hbase-0.98.9-hadoop ...
- java api操作
java api操作 导入开发包 将hbase安装包中lib下包导入java项目 创建表 Configuration conf = HBaseConfiguration.create(); c ...
- Java代码操作zookeeper
.personSunflowerP { background: rgba(51, 153, 0, 0.66); border-bottom: 1px solid rgba(0, 102, 0, 1); ...
- hive-通过Java API操作
通过Java API操作hive,算是测试hive第三种对外接口 测试hive 服务启动 package org.admln.hive; import java.sql.SQLException; i ...
随机推荐
- 重磅 | 阿里开源首个 Serverless 开发者平台 Serverless Devs
Serverless 从概念提出到应用,已经走过了 8 个年头,开发者对 Serverless 的使用热情不断高涨.为帮助开发者实现一键体验多云产品,极速部署 Serverless 项目,10 月 2 ...
- H5移动端适配方案-rem
为什么移动端要适配: 由于移动设备的尺寸不一,所以移动端的页面要能够适应不同尺寸的设备,即页面的自适应,让页面在视觉上保持一致. rem:rem 是css3的一种相对单位,参考是根元素HMTL的fon ...
- DL4J实战之四:经典卷积实例(GPU版本)
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...
- Java基础之(六):变量、运算符与JavaDoc
变量.常量 一.变量的命名规范 首字母只能以字母(A-Z或者a-z)或者美元符($)或者下划线(_)开头,不能以数字开头,首字母之后只能跟字母(AZ或者az)或者数字,不能跟美元符或者下划线 源码 p ...
- codeforces316E3 Summer Homework(线段树,斐波那契数列)
题目大意 给定一个n个数的数列,m个操作,有三种操作: \(1\ x\ v\) 将\(a_x\)的值修改成v $2\ l\ r\ $ 求 \(\sum_{i=l}^r x_i*f_{i-l}\) 其中 ...
- SharkCTF2021 Babyhttp && get_or_lose
两道web. Babyhttp: 直接dirsearch,发现同时存在git和bak泄露:经验证,git的没用. 访问index.php.bak, 下载源码: 抓包,改包,发包即可. get_or_l ...
- RabbitMQ:从入门到搞定面试官
安装 使用docker安装,注意要安装tag后缀为management的镜像(包含web管理插件),我这里使用的是rabbitmq:3.8-management 1. 拉取镜像 shell docke ...
- [Java]Sevlet
0 前言 对于Java程序员而言,Web服务器(如Tomcat)是后端开发绕不过去的坎.简单来看,浏览器发送HTTP请求给服务器,服务器处理后发送HTTP响应给浏览器. Web服务器负责对请求进行处理 ...
- MySQL:提高笔记-5
MySQL:提高笔记-5 学完基础的语法后,进一步对 MySQL 进行学习,前几篇为: MySQL:提高笔记-1 MySQL:提高笔记-2 MySQL:提高笔记-3 MySQL:提高笔记-4 MySQ ...
- mybatis中的#和$的区别 以及 防止sql注入
声明:这是转载的. mybatis中的#和$的区别 1. #将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号.如:order by #user_id#,如果传入的值是111,那么解析成sq ...