Hbase API

hbase版本:2.3.5

1、创建maven工程,引入pom依赖

<dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.11</version></dependency><dependency><groupId>org.apache.hbase</groupId><artifactId>hbase-client</artifactId><version>2.3.5</version></dependency><dependency><groupId>org.apache.hbase</groupId><artifactId>hbase-common</artifactId><version>2.3.5</version></dependency></dependencies>

2、编写测试类,与hbase创建连接

2.1 初始化配置

    private Connection connection = null;private Table table = null;@Beforepublic void init() throws IOException {Configuration conf = HBaseConfiguration.create();conf.set("hbase.zookeeper.quorum","192.168.153.135");conf.set("hbase.zookeeper.property.clientPort","2181");connection = ConnectionFactory.createConnection(conf);}

2.2 测试

@Testpublic void testConnection(){System.out.println(connection);}

效果图:

2.3 关闭连接

@Afterpublic void close() throws IOException {if (connection!=null)connection.close();}

3、创建表空间

@Testpublic void createNamespace() throws IOException {Admin admin = connection.getAdmin();NamespaceDescriptor.Builder builder = NamespaceDescriptor.create("bigdata888");NamespaceDescriptor namespaceDescriptor = builder.build();admin.createNamespace(namespaceDescriptor);}

4.创建表

@Testpublic void createTable() throws IOException {Admin admin = connection.getAdmin();TableName tableName = TableName.valueOf("bigdata888:test001");TableDescriptorBuilder tableDescriptorBuilder = TableDescriptorBuilder.newBuilder(tableName);ColumnFamilyDescriptor columnFamilyDescriptor1 = ColumnFamilyDescriptorBuilder.of("baseinfo");ColumnFamilyDescriptor columnFamilyDescriptor2 = ColumnFamilyDescriptorBuilder.of("schoolinfo");tableDescriptorBuilder.setColumnFamily(columnFamilyDescriptor1);tableDescriptorBuilder.setColumnFamily(columnFamilyDescriptor2);TableDescriptor descriptor = tableDescriptorBuilder.build();admin.createTable(descriptor);}

5、插入数据

5.1 插入单行数据

@Testpublic void insertValue() throws IOException {table = connection.getTable(TableName.valueOf("bigdata888:test001"));Put rowkey1 = new Put(Bytes.toBytes("rowkey1"));rowkey1.addColumn(Bytes.toBytes("baseinfo"),Bytes.toBytes("name"),Bytes.toBytes("zhangsan"));rowkey1.addColumn(Bytes.toBytes("baseinfo"),Bytes.toBytes("gender"),Bytes.toBytes("male"));rowkey1.addColumn(Bytes.toBytes("baseinfo"),Bytes.toBytes("pwd"),Bytes.toBytes("111"));rowkey1.addColumn(Bytes.toBytes("schoolinfo"),Bytes.toBytes("name"),Bytes.toBytes("njdx"));rowkey1.addColumn(Bytes.toBytes("schoolinfo"),Bytes.toBytes("location"),Bytes.toBytes("nj"));table.put(rowkey1);}

5.2 插入多行数据

@Testpublic void insertValue2() throws IOException {table = connection.getTable(TableName.valueOf("bigdata888:test001"));Put rowkey2 = new Put(Bytes.toBytes("rowkey2"));rowkey2.addColumn(Bytes.toBytes("baseinfo"),Bytes.toBytes("name"),Bytes.toBytes("lisi"));rowkey2.addColumn(Bytes.toBytes("baseinfo"),Bytes.toBytes("gender"),Bytes.toBytes("female"));rowkey2.addColumn(Bytes.toBytes("baseinfo"),Bytes.toBytes("pwd"),Bytes.toBytes("222"));rowkey2.addColumn(Bytes.toBytes("schoolinfo"),Bytes.toBytes("name"),Bytes.toBytes("bjdx"));rowkey2.addColumn(Bytes.toBytes("schoolinfo"),Bytes.toBytes("location"),Bytes.toBytes("bj"));Put rowkey3 = new Put(Bytes.toBytes("rowkey3"));rowkey3.addColumn(Bytes.toBytes("baseinfo"),Bytes.toBytes("name"),Bytes.toBytes("wangwu"));rowkey3.addColumn(Bytes.toBytes("baseinfo"),Bytes.toBytes("gender"),Bytes.toBytes("male"));rowkey3.addColumn(Bytes.toBytes("baseinfo"),Bytes.toBytes("pwd"),Bytes.toBytes("333"));rowkey3.addColumn(Bytes.toBytes("schoolinfo"),Bytes.toBytes("name"),Bytes.toBytes("qhdx"));rowkey3.addColumn(Bytes.toBytes("schoolinfo"),Bytes.toBytes("location"),Bytes.toBytes("bj"));ArrayList<Put> list = new ArrayList<Put>();list.add(rowkey2);list.add(rowkey3);table.put(list);}

6、扫描表

@Testpublic void scanValue() throws IOException {table = connection.getTable(TableName.valueOf("bigdata888:test001"));Scan scan  = new Scan();ResultScanner scanner = table.getScanner(scan);for (Result result :scanner) {byte[] stuname = result.getValue(Bytes.toBytes("baseinfo"), Bytes.toBytes("name"));byte[] gender = result.getValue(Bytes.toBytes("baseinfo"), Bytes.toBytes("gender"));byte[] pwd = result.getValue(Bytes.toBytes("baseinfo"), Bytes.toBytes("pwd"));byte[] schoolname = result.getValue(Bytes.toBytes("schoolinfo"), Bytes.toBytes("name"));byte[] location = result.getValue(Bytes.toBytes("schoolinfo"), Bytes.toBytes("location"));System.out.println("-----------------------------------------");System.out.print(Bytes.toString(stuname)+"\t");System.out.print(Bytes.toString(gender)+"\t");System.out.print(Bytes.toString(pwd)+"\t");System.out.print(Bytes.toString(schoolname)+"\t");System.out.println(Bytes.toString(location)+"\t");}}

效果图:

7、查询单行数据

@Testpublic void getValue() throws IOException {table = connection.getTable(TableName.valueOf("bigdata888:test001"));Get zhangsan = new Get(Bytes.toBytes("rowkey2"));Result result = table.get(zhangsan);byte[] name = result.getValue(Bytes.toBytes("baseinfo"), Bytes.toBytes("name"));System.out.println(Bytes.toString(name));}

效果图:

8、删除数据

    @Testpublic void del() throws IOException {table = connection.getTable(TableName.valueOf("bigdata888:test001"));
//        Delete wangwu = new Delete(Bytes.toBytes("rowkey3"));
//        lisi.addColumn(Bytes.toBytes("baseinfo"),Bytes.toBytes("name")); // 删除具体列
//        table.delete(wangwu);Delete delwangwu = new Delete(Bytes.toBytes("rowkey3")); // 删除整行table.delete(delwangwu);}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/108649.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

61、SpringBoot -----跨域资源的设置----局部设置和全局设置

★ 跨域资源共享的意义 ▲ 在前后端分离的开发架构中&#xff0c;前端应用和后端应用往往是彻底隔离的&#xff0c;二者不在同一个应用服务器内、甚至不再同一台物理节点上。 因此前端应用和后端应用就不在同一个域里。▲ 在这种架构下&#xff0c;前端应用可能采用前端框架&a…

了解稀疏数组

稀疏数组&#xff08;一种数据结构&#xff09; package com.mypackage.array;public class Demo08 {public static void main(String[] args) {//1.创建一个二维数组 11*11// 0&#xff1a;没有棋子 1&#xff1a;黑棋 2&#xff1a;白棋int[][] array1 new int[11][11];…

Redis总结(一)

目录 Redis简介 为什么使用Redis作为MySQL的缓存&#xff1f; 高性能 高并发 Redis数据结构及其使用场景分别是什么&#xff1f; String&#xff08;字符串&#xff09; 内部实现 常用命令 普通字符串基本操作 批量设置 计数器&#xff08;字符串内容为整数时使用&a…

学习网络编程No.6【将服务器日志和守护进程化】

引言&#xff1a; 北京时间&#xff1a;2023/9/1/21:15&#xff0c;下午刚更新完博客&#xff0c;同理再接再厉&#xff0c;这样整天不需要干什么&#xff0c;除了玩手机的日子不多了&#xff0c;马上就要开学&#xff0c;每天需要签到签退的日子就要来临&#xff0c;烦躁&…

每日刷题-5

目录 一、选择题 二、算法题 1、不要二 2、把字符串转换成整数 一、选择题 1、 解析&#xff1a;printf(格式化串&#xff0c;参数1&#xff0c;参数2,.….)&#xff0c;格式化串: printf第一个参数之后的参数要按照什么格式打印&#xff0c;比如%d--->按照整形方式打印&am…

基于人体呼出气体的电子鼻系统的设计与实现

基于人体呼出气体的电子鼻系统的设计与实现 摘要 电子鼻技术是通过模式识别技术对传感器采集的人体呼出气体进行分类训练的方法。本文研究实现的电子鼻系统包括下面几个部分:首先搭建以Arduino为控制核心的气路采集装置&#xff0c;包括MOS传感器和双阀储气袋构建的传感器阵列和…

【python绘图—colorbar操作学习】

文章目录 Colorbar的作用Colorbar的操作截取cmap拼接cmap双刻度列colorbar 引用 Colorbar的作用 Colorbar&#xff08;颜色条&#xff09;在绘图中的作用非常重要&#xff0c;它主要用于以下几个方面&#xff1a; 表示数据范围&#xff1a; Colorbar可以显示图中的颜色映射范围…

使用内网端口映射方案,轻松实现U8用友ERP的本地部署异地远程访问——“cpolar内网穿透”

文章目录 前言1. 服务器本机安装U8并调试设置2. 用友U8借助cpolar实现企业远程办公2.1 在被控端电脑上&#xff0c;点击开始菜单栏&#xff0c;打开设置——系统2.2 找到远程桌面2.3 启用远程桌面 3. 安装cpolar内网穿透3.1 注册cpolar账号3.2 下载cpolar客户端 4. 获取远程桌面…

对抗生成网络总结

对一些基本的对抗生成网络的总结。部分内容整理自Teeyohuang’s blog 文章目录 GAN (NeurIPS, 2014)CGANDCGANStackGANPix2Pix (CVPR, 2017)CycleGAN (ICCV, 2017)SRGAN (CVPR, 2017)StyleGAN (CVPR, 2019) GAN (NeurIPS, 2014) Generative adversarial nets m i n G m a x D …

Flutter的oktoast插件详解

文章目录 简介详细介绍安装和导入导入在MaterialApp外面套一层OKToast组件为什么是包住MaterialApp&#xff1f; 显示Toast消息&#xff1a; 高级使用Toast位置Toast持续时间自定义Toast样式高级用法 使用场景提示消息表单验证操作反馈网络请求状态调试信息小结 总结 简介 okt…

虚拟人三维动画宣传片案例分享 | 广州“五羊”城市文化IP商业体裸眼3D广告影片

随着时代的发展元宇宙的助推&#xff0c;裸眼3D形式的宣传方式逐渐出现在大众眼前。以数字人IP的3D立体效果吸引大众目光&#xff0c;让其驻足拍照、录视频分享至社交平台&#xff0c;为企业品牌带来高频传播价值。 近日&#xff0c;广州“五羊”城市文化IP裸眼3D广告宣传片在广…

LeetCode算法心得——和可被 K 整除的子数组(前缀和+HashMap)

大家好&#xff0c;我是晴天学长&#xff0c;同余定理的应用&#xff0c;需要的小伙伴可以关注支持一下哦&#xff01;后续会继续更新的。 1) .和可被 K 整除的子数组 题目描述 给定一个整数数组 A&#xff0c;返回其中元素之和可被 K 整除的&#xff08;连续、非空&#xff0…