HBase基础编程

news2024/10/6 2:27:32

文章目录

  • HBase基础编程
    • 一、实验目标
    • 二、实验要求及注意事项
    • 三、实验内容及步骤
  • 附:系列文章

HBase基础编程

一、实验目标

  1. 掌握如何通过HBase shell命令来设计HBase表结构实例,从而理解HBase的列式存储结构
  2. 掌 握 java编程创建HBase表和删除HBase表。

二、实验要求及注意事项

  1. 给出每个实验的主要实验步骤、实现代码和测试效果截图。
  2. 对本次实验工作进行全面的总结分析。
  3. 所有程序需要本地测试和集群测试,给出相应截图。
  4. 建议工程名,类名或包名等做适当修改,显示个人学号或者姓名

三、实验内容及步骤

实验任务1:HBase表设计。通过HBase shell命令来设计并创建三张相关的表,其中后两张表可以关联起来,例如店铺与商品表。建议自拟表名和表内容。

1

主要实现步骤和运行效果图:

完整程序

create 'shop','info','item'
put 'shop','s_01','item:item_id','i_01'
put 'shop','s_01','info:name','iphone'
put 'shop', 's_01','info:address','tianmao'
put 'shop','s_01','info:regdate','11-11'
create 'Item','info','item'
put 'Item','i_01','item:shop_id','s_01'
put 'Item','i_01','info:name','iphone'
put 'Item','i_01','info:price','4534'
put 'Item','i_01','info:detail','ios10.3.2'
put 'Item','i_01','info:title','phoneOfApple'

程序分析

这是一组HBase的命令,主要是创建和操作两个表格——‘shop’和’Item’。

首先,在’shop’表格中添加一行数据,该行的行键为’s_01’,列限定符为’item:item_id’,值为’i_01’。然后,再在’shop’表格中添加三个列:‘info:name’,值为’iphone’;‘info:address’,值为’tianmao’;‘info:regdate’,值为’11-11’。

接下来,创建’Item’表格,并添加一行数据。该行的行键为’i_01’,列限定符为’item:shop_id’,值为’s_01’。然后,再添加四个列:‘info:name’,值为’iphone’;‘info:price’,值为’4534’;‘info:detail’,值为’ios10.3.2’;‘info:title’,值为’phoneOfApple’。

运行结果

1-1
1-2

实验任务2:使用Java编程创建表和删除表,表名和列族自拟。

主要实现步骤和运行效果图:

完整程序

WjwCreateTable

package hbase;

import org.apache.hadoop.hbase.client.HBaseAdmin;
import org.apache.hadoop.conf.*;
import org.apache.hadoop.hbase.*;

public class WjwCreateTable {
	
	static Configuration conf;
	static{
		conf = new Configuration();
	}
	
	public static void createtb(String tbname, String[] tbfamily) throws Exception{
		HBaseAdmin admin = new HBaseAdmin(conf);
		HTableDescriptor hd = new HTableDescriptor(tbname);
		for(int i=0;i<tbfamily.length;i++){
			hd.addFamily(new HColumnDescriptor(tbname));
		}
		if(admin.tableExists(tbname)){
			System.out.println(tbname);
		}else{
			admin.createTable(hd);
			System.out.println("create table success");
		}
	}
	public static void deltb(String tbname) throws Exception{
		HBaseAdmin admin = new HBaseAdmin(conf);
		admin.disableTable(tbname);
		admin.deleteTable(tbname);
		if(admin.tableExists(tbname)){
			System.out.println(tbname+"is not exists");
		}else{
			System.out.println("success del");
		}
	}
	

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String str[] = {"cf1"};
		createtb("wjw01", str);
	}
}

这是一个使用HBase Java API创建和删除表格的示例程序。

首先,在静态代码块中创建了一个Configuration对象,这是一个包含HBase的配置信息的对象。

然后,定义了一个名为’createtb’的方法,该方法接收两个参数:表格名和表格列族名。在该方法中,首先通过HBaseAdmin类创建了一个HBaseAdmin对象,然后通过HTableDescriptor类创建了一个HTableDescriptor对象,用于描述表格的结构。接着,通过循环遍历表格列族名数组,添加每个列族并将其加入HTableDescriptor对象中。最后,判断该表是否已经存在,如果存在则打印出表格名,否则调用HBaseAdmin的createTable方法创建表格,并打印出"create table success"。

然后,定义了一个名为’deltb’的方法,该方法接收一个参数:表格名。在该方法中,同样通过HBaseAdmin类创建了一个HBaseAdmin对象,并调用其disableTable方法禁用该表格,然后调用其deleteTable方法删除该表格。最后,判断该表是否已经被删除,如果未删除则打印出表格名和"is not exists",否则打印出"success del"。

最后,在main方法中调用createtb方法创建了一个名为"wjw01",列族名为"cf1"的表格。

WjwDeleteTable

package hbase;
import java. io. IOException;
import org. apache. hadoop. conf.*;
import org. apache. hadoop. hbase.HBaseConfiguration;
import org. apache. hadoop. hbase. MasterNotRunningException;
import org. apache. hadoop. hbase. ZooKeeperConnectionException;
import org. apache. hadoop. hbase. client. HBaseAdmin;
import org. apache. hadoop. hbase. client. HTable;
public class WjwDeleteTable {
	public Configuration conf;
	public HTable table;
	public HBaseAdmin admin;
	public void HBaseTest() throws MasterNotRunningException,
		ZooKeeperConnectionException, IOException {
		conf = HBaseConfiguration. create();
		conf. set("hbase. master", "master:60000");
		System. out. println(conf. get("hbase. master"));
		conf. set("hadoop. zkk. property. clientPort", "2181");
		System. out. println(conf. get("hadoop. zkk. property. clientPort"));
		conf. set("hbase. zookeeper. quorum", "master");
		System. out. println(conf. get("hbase. zookeeper. quorum"));
		admin= new HBaseAdmin(conf);
		table = new HTable(conf, "test01");
	}
	public static void main(String[] args) throws Exception {
		WJW02 hc = new WjwDeleteTable();
		hc. HBaseTest();
	}
}

这是一个使用HBase Java API删除表的示例程序。

首先,在HBaseTest方法中创建了一个Configuration对象,然后通过该对象设置了HBase集群的master和zookeeper相关参数,包括hbase.master、hadoop.zkk.property.clientPort和hbase.zookeeper.quorum。然后,创建了一个HBaseAdmin对象和一个HTable对象。

接着,在main方法中创建了一个WjwDeleteTable对象,并调用其HBaseTest方法进行HBase连接测试。

运行结果

2-1
2-2

附:系列文章

实验文章目录直达链接
实验01Hadoop安装部署https://want595.blog.csdn.net/article/details/132767284
实验02HDFS常用shell命令https://want595.blog.csdn.net/article/details/132863345
实验03Hadoop读取文件https://want595.blog.csdn.net/article/details/132912077
实验04HDFS文件创建与写入https://want595.blog.csdn.net/article/details/133168180
实验05HDFS目录与文件的创建删除与查询操作https://want595.blog.csdn.net/article/details/133168734
实验06SequenceFile、元数据操作与MapReduce单词计数https://want595.blog.csdn.net/article/details/133926246
实验07MapReduce编程:数据过滤保存、UID 去重https://want595.blog.csdn.net/article/details/133947981
实验08MapReduce 编程:检索特定群体搜索记录和定义分片操作https://want595.blog.csdn.net/article/details/133948849
实验09MapReduce 编程:join操作和聚合操作https://want595.blog.csdn.net/article/details/133949148
实验10MapReduce编程:自定义分区和自定义计数器https://want595.blog.csdn.net/article/details/133949522

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

新能源汽车高压线束是如何快速连接到测试设备上进行电性能测试的

快速连接形成稳定的电测试在新能源行业里面是很常见的测试场景&#xff0c;比如说在新能源汽车行业的电池包、电机、电控制器的电性能测试中会有很多高压线束&#xff0c;需要将这些线束和电池包、电控制器、电机与测试设备快速连接在一起进行相关的EOL/DCR测试。 新能源汽车高…

内网隧道搭建( 内网穿透)

一、使用代理工具 ew_for_win 1、环境准备&#xff1a; &#xff08;1&#xff09;一台双网卡虚拟机&#xff08;作为跳板&#xff09;&#xff0c;能同时与攻击者主机和受害者主机通信&#xff1a; &#xff08;2&#xff09;一台攻击者主机&#xff1a; &#xff08;3&…

【陈老板赠书活动 - 17期】- 她以亲身经历证明,程序员借助AI做副业可以有多成功!

陈老老老板&#x1f9b8; &#x1f468;‍&#x1f4bb;本文专栏&#xff1a;赠书活动专栏&#xff08;为大家争取的福利&#xff0c;免费送书&#xff09; &#x1f468;‍&#x1f4bb;本文简述&#xff1a;生活就像海洋,只有意志坚强的人,才能到达彼岸。 &#x1f468;‍&am…

最新Next14 路由处理器 Route Handlers

四、使用Next路由处理程序 Next.js Route Handlers I. Next中路由处理程序是什么 ​ 路由处理程序是在用户访问站点路由时执行的功能。它们负责处理对定义的URL或路由的传入HTTP请求&#xff0c;以生成所需的数据。从本质上讲&#xff0c;当用户访问Next.js应用程序中的特定页…

全新智能后备保护器综合产品解决方案

SCB后备保护器是一种用于浪涌保护器&#xff08;SPD&#xff09;的专用外置脱离器&#xff0c;它可以有效地防止SPD因故障或短路而引起的火灾和设备损坏&#xff0c;同时保证SPD在雷电流冲击下不误动作&#xff0c;维持电气设备的防雷保护状态。地凯科技将介绍后备保护器的应用…

pycharm remote host显示nothing to show

远程服务器remote host右侧消失解决方法_dl_风禾的博客-CSDN博客文章浏览阅读727次。remote host打开方法https://blog.csdn.net/weixin_43959436/article/details/127818707?ops_request_misc%257B%2522request%255Fid%2522%253A%2522169940685316800197099235%2522%252C%252…

软件开发项目文档系列之十三如何撰写用户操作手册

目录 1 引言1.1 目的1.2 系统概述1.3 参考资料1.4 文档格式 2 系统运行环境2.1 系统硬件环境2.2 系统软件环境 3 系统设置说明3.1 公告发布3.2 角色管理3.3 通用管理 4 用户账户与访问说明4.1 注册与登录4.2 密码管理 5 数据管理说明5.1 数据导入与导出5.2 数据备份与还原 6 帮…

二维码智慧门牌管理系统升级解决方案:高效、安全、便捷

文章目录 前言一、用户管理二、菜单管理三、角色管理四、字典管理五、权限管理六、日志管理 前言 随着科技的不断发展&#xff0c;传统门牌管理系统已经无法满足现代管理的需求。为了提高管理效率&#xff0c;降低安全风险&#xff0c;并实现便捷的日志管理&#xff0c;二维码…

JAVA综合知识点总结-基础篇(4)

三十一、平时浏览的书籍..................................................................................... 三十二、java Exception体系结构......................................................................... 三十三、session和cookie的区别...........…

小白学爬虫:通过商品ID或商品链接封装接口获取淘宝商品销量数据接口|淘宝商品销量接口|淘宝月销量接口|淘宝总销量接口

淘宝商品销量接口是淘宝开放平台提供的一种API接口&#xff0c;通过该接口&#xff0c;商家可以获取到淘宝平台上的商品销量数据。使用淘宝商品销量接口的步骤如下&#xff1a; 1、在淘宝开放平台注册并创建应用&#xff0c;获取API Key和Secret Key等必要的信息。 2、根据淘宝…

可完美兼容迪文的串口屏?

如何让屏幕识别迪文协议&#xff0c;下面介绍淘晶驰USART HMI上位机用法 首先在工程输入0000-fffe 然后在program.s输入recmod2&#xff0c;在控件列表里就会刷新带有_vp的控件 带_vp的控件可以像迪文一样使用地址 导入字库&#xff0c;输入项目地址&#xff0c;根据通信协议来…

舞台灯光专用电机驱动及应用方案

舞台灯光的运用是舞台艺术中不可或缺的重要手段&#xff0c;达到突出重点、塑造人物形象、烘托环境气氛的目的&#xff1b;在舞台灯光的使用过程中&#xff0c;会对灯光的角度有较多的要求而步进电机具有较好的调节性&#xff1b;且控制方式更加灵活多样&#xff1b;能满足舞台…

配置阿里云镜像加速器 -docker

1.百度aliyun 2.找到镜像服务ACR 3.搞一个个人版&#xff0c;身份验证一下就行了很简单 4.找到镜像加速器Centos 5.在xshell执行下面4条命令&#xff1a;4条命令直接从上面操作文档中粘贴&#xff0c;不容易出错 sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json…

企业如何选型iPaaS平台

企业数字化转型已是大势所趋&#xff0c;伴随着我国数字化转型改革的不断深入&#xff0c;加快推进企业数字化转型是新发展格局下实现经济高质量发展的必由之路。 企业在数字化转型过程中会搭建众多应用系统&#xff0c;以解决不同业务部门的需求。但系统之间如果互不连通&…

康其农业:西藏“高原红”苹果,成就世界屋脊的乡村振兴典范

金秋&#xff0c;阳光打在青藏高原&#xff0c;贡嘎山坡上的苹果树更显挺拔葱茏。清风拂过&#xff0c;一个个鲜红欲滴的苹果挂在枝叶之间&#xff0c;轻盈摇曳&#xff0c;像是在朝人们的味蕾招手。 康其农业集团董事长朱秋林抚摩着累累果实&#xff0c;笑容在双颊上绽开。 …

【慢SQL性能优化】 一条SQL的生命周期 | 京东物流技术团队

一、 一条简单SQL在MySQL执行过程 一张简单的图说明下&#xff0c;MySQL架构有哪些组件和组建间关系&#xff0c;接下来给大家用SQL语句分析 例如如下SQL语句 SELECT department_id FROM employee WHERE name Lucy AND age > 18 GROUP BY department_id其中name为索引&a…

C/C++轻量级并发TCP服务器框架Zinx-游戏服务器开发002:框架学习-按照三层结构模式重构测试代码+Tcp数据适配+时间轮定时器

文章目录 1 Zinx框架总览2 三层模式的分析3 三层重构原有的功能 - 头文件3.1 通道层Stdin和Stdout类3.1.2 StdInChannel3.1.2 StdOutChannel 3.2 协议层CmdCheck和CmdMsg类3.2.1 CmdCheck单例模式3.2.1.1 单例模式3.2.1.2 * 命令识别类向业务层不同类别做分发 3.2.2 CmdMsg自定…

传统库分表麻烦查询慢?TDengine 如何解决“搜狐基金”的应用难题

该项目需要实时展示国内基金的净值和收益&#xff08;货币基金&#xff09;&#xff0c;在保证满足折线图展示的功能基础上&#xff0c;还需要加入统计排行、分页展示等功能&#xff0c;为用户提供最全面实时的查询服务。此前搜狐基金团队使用的 MySQL 数据库在面对海量数据时存…

linux粘滞位的介绍及使用

文章目录 1.粘滞位的引入2.粘滞位的使用 1.粘滞位的引入 首先看一个场景 已知 对目录无w权限时 无法进行目录中的文件的创建/删除操作但是普通用户通过sudo命令 以root身份创建一个文件 rw- r-- r-- 普通用户此时是other 没有w权限 但却可以删除 [root和普通用户在一个目录下时…

【LittleXi】ICPC2023 南京站 总结

【LittleXi】ICPC2023 南京站 总结 赛前&#xff1a; 一周两次的vp训练 cf div2正常打、补题、沉淀&#xff0c;顺便vp了两把&#xff08;网瘾了&#xff09; 热身赛 熟悉了一下键盘&#xff0c;顺便交了一下A题的随机算法 测试评测了bitset、map、hashmap、打印时间&…