大数据技术原理及应用课实验3 :熟悉常用的HBase操作

目录

实验3  熟悉常用的HBase操作

一、实验目的

二、实验平台

三、实验步骤(每个步骤下均需有运行截图)

(一)编程实现以下指定功能,并用Hadoop提供的HBase Shell命令完成相同任务:

1.列出HBase所有的表的相关信息,例如表名;

2.在终端打印出指定的表的所有记录数据;

3.向已经创建好的表添加和删除指定的列族或列;

4.统计表的行数。

(二)HBase数据库操作

1. 现有以下关系型数据库中的表和数据(见表14-3到表14-5),要求将其转换为适合于HBase存储的表并插入数据:

 (1)创建Student表:

(2)创建Couse表:

(3)创建SC表

2. 请编程实现以下功能:

(1)createTable(String tableName, String[] fields)

        (2)addRecord(String tableName, String row, String[] fields, String[] values)

        (3)scanColumn(String tableName, String column)

        (4)modifyData(String tableName, String row, String column)

(5)deleteRow(String tableName, String row)

四、实验总结

五、优化及改进(选做)


实验3  熟悉常用的HBase操作

一、实验目的

1. 理解HBase在Hadoop体系结构中的角色;

2. 熟练使用HBase操作常用的Shell命令;

3. 熟悉HBase操作常用的Java API。

二、实验平台

1. 操作系统:Linux(建议Ubuntu16.04或Ubuntu18.04);

2. Hadoop版本:3.1.3;

3. HBase版本:2.2.2;

4. JDK版本:1.8;

5. Java IDE:Eclipse。

三、实验步骤(每个步骤下均需有运行截图)

(一)编程实现以下指定功能,并用Hadoop提供的HBase Shell命令完成相同任务:

1.列出HBase所有的表的相关信息,例如表名;

2.在终端打印出指定的表的所有记录数据;

3.向已经创建好的表添加和删除指定的列族或列;

清空指定的表的所有记录数据;

4.统计表的行数。

(二)HBase数据库操作

1. 现有以下关系型数据库中的表和数据(见表14-3到表14-5),要求将其转换为适合于HBase存储的表并插入数据:

表14-3 学生表(Student)

学号(S_No)

姓名(S_Name)

性别(S_Sex)

年龄(S_Age)

2015001

Zhangsan

male

23

2015002

Mary

female

22

2015003

Lisi

male

24

表14-4 课程表(Course)

课程号(C_No)

课程名(C_Name)

学分(C_Credit)

123001

Math

2.0

123002

Computer Science

5.0

123003

English

3.0

表14-5 选课表(SC)

学号(SC_Sno)

课程号(SC_Cno)

成绩(SC_Score)

2015001

123001

86

2015001

123003

69

2015002

123002

77

2015002

123003

99

2015003

123001

98

2015003

123002

95

 (1)创建Student表:

(2)创建Couse表:

(3)创建SC表

2. 请编程实现以下功能:

(1)createTable(String tableName, String[] fields)

        创建表,参数tableName为表的名称,字符串数组fields为存储记录各个字段名称的数组。要求当HBase已经存在名为tableName的表的时候,先删除原有的表,然后再创建新的表。

        (2)addRecord(String tableName, String row, String[] fields, String[] values)

        向表tableName、行row(用S_Name表示)和字符串数组fields指定的单元格中添加对应的数据values。其中,fields中每个元素如果对应的列族下还有相应的列限定符的话,用“columnFamily:column”表示。例如,同时向“Math”、“Computer Science”、“English”三列添加成绩时,字符串数组fields为{“Score:Math”, ”Score:Computer Science”, ”Score:English”},数组values存储这三门课的成绩。

        (3)scanColumn(String tableName, String column)

        浏览表tableName某一列的数据,如果某一行记录中该列数据不存在,则返回null。要求当参数column为某一列族名称时,如果底下有若干个列限定符,则要列出每个列限定符代表的列的数据;当参数column为某一列具体名称(例如“Score:Math”)时,只需要列出该列的数据。

        (4)modifyData(String tableName, String row, String column)

        修改表tableName,行row(可以用学生姓名S_Name表示),列column指定的单元格的数据。

(5)deleteRow(String tableName, String row)

删除表tableName中row指定的行的记录。

四、实验总结

在本次实验中,我更加进一步理解了HDFS在Hadoop体系结构中的角色并能使用HDFS操作常用的Shell命令以及HDFS操作常用的Java API。

在本次实验的第一题是用编程Java API实现指定功能,并用Hadoop提供的HBase Shell命令完成相同任务。在本题中学习了列出HBase所有的表的相关信息,在终端打印出指定的表的所有记录数据,向已经创建好的表添加和删除指定的列族或列,清空指定的表的所有记录数据,统计表的行数。

第二题中,主要是通过虚拟机的IDEA采用HDFS操作常用的Java API来运行解答。在此题中学习了创建表,向表tableName、行row(用S_Name表示)和字符串数组fields指定的单元格中添加对应的数据values。浏览表tableName某一列的数据,如果某一行记录中该列数据不存在,则返回null。修改表tableName,行row(可以用学生姓名S_Name表示),列column指定的单元格的数据。删除表tableName中row指定的行的记录。在此题中还是感觉到Java API还不够熟练,还需要继续加强学习。

五、优化及改进(选做)

【提出你觉得解决这个问题更好的算法,并加以说明】

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

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

相关文章

科大讯飞将于1月30日发布星火大模型 V3.5,基于全国产化算力底座训练

科大讯飞即将发布全新AI大模型——星火认知大模型 V3.5,该模型将于14:00正式发布。据透露,相比于去年10月24日发布的V3.0版本,V3.5在逻辑推理、文本生成、数学答题及小样本学习能力上均实现了显著提升。 科大讯飞官网链接:讯飞星…

Leetcode的AC指南 —— 栈与队列:20. 有效的括号

摘要: **Leetcode的AC指南 —— 栈与队列:20. 有效的括号 **。题目介绍:给定一个只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串 s ,判断字符串是否有效。 有效字…

CMeet系列技术生态沙龙---城市开发者组织年度聚会·杭州 《把握未来趋势,持续学习创新》

CSDN始终致力于促进城市区域内尖端新兴技术开发者交流,提供开放自由的切磋平台。在这个充满挑战和机遇的一年即将结束之际,通过本次聚会,汇聚杭州本地各行各业的开发者朋友,回顾过去一年城市社区的成就和收获,感谢携手同行的各位,…

makefile的机制,执行命令的流程分析

makefile的机制,流程分析 calc:add.o sub.o multi.ogcc add.o sub.o multi.o calc.cpp -o calcadd.o:add.cppgcc -c add.cpp -o add.osub.o:sub.cppgcc -c sub.cpp -o sub.omulti.o:multi.cppgcc -c multi.cpp -o multi.oclean:rm -rf *.o calc按照这个例子分析&am…

常见网站结构

网站架构与部署架构 1、初始阶段的网站架构 一般来讲,大型网站都是从小型网站发展而来,一开始的架构都比较简单,随着业务复杂和用户量的激增,才开始做很多架构上的改进。当它还是小型网站的时候,没有太多访客&#…

数据结构之栈和队列

数据结构之栈和队列 1、栈1.1、栈的定义及基本运算1.2、栈的存储结构 2、队列2.1、队列的定义及基本运算2.2、队列的存储结构2.3、队列的应用 数据结构是程序设计的重要基础,它所讨论的内容和技术对从事软件项目的开发有重要作用。学习数据结构要达到的目标是学会从…

FDM3D打印系列——宝可梦妙蛙种子

fdm打印妙蛙种子 大家好,我是阿赵。   每次打印3D模型,都有新的感觉,这次打印了个宝可梦里面的妙蛙种子,也就是俗称的蒜头王八。   先来看看成果,然后在后面再聊一下关于3D打印的一些体会。使用创想三维的Sermoon …

华为机考入门python3--(0)测试题1-句子平均重量

分类:字符串 知识点: 获取输入 input().strip().split(" ") 拼接列表 " ".join(list) 输出指定位数的浮点数 print("%.2f" % value) 题目来自【华为招聘模拟考试】 # If you need to import additional packages or c…

Dell戴尔XPS 8930笔记本电脑原装Win10系统 恢复出厂预装OEM系统

链接:https://pan.baidu.com/s/1eaTQeX-LnPJwWt3fBJD8lg?pwdajy2 提取码:ajy2 原厂系统自带所有驱动、出厂主题壁纸、系统属性联机支持标志、系统属性专属LOGO标志、Office办公软件、MyDell等预装程序 文件格式:esd/wim/swm 安装方式&am…

一文梳理金融风控建模全流程(Python)

▍目录 一、简介 风控信用评分卡简介 Scorecardpy库简介 二、目标定义与数据准备 目标定义 数据准备 三、安装scorecardpy包 四、数据检查 五、数据筛选 六、数据划分 七、变量分箱 卡方分箱 手动调整分箱 八、建立模型 相关性分析 多重共线性检验VIF KS和AUC …

李宏毅 Generative Adversarial Network(GAN)生成对抗网络

(延申)GAN Lecture 1 (2018)- Introduction_哔哩哔哩_bilibili Basic Idea of GAN 附课程提到的各式各样的GAN:https://github.com/hindupuravinash/the-gan-zoo 想要让机器做到的是生成东西。->训练出来一个generator。 假设要做图像生成,要做的是…

【Qt之模型视图】5. Qt库提供的视图便捷类

1. 前言 Qt提供了一些便捷的视图类,如QListWidget提供项目列表,QTreeWidget显示多级树结构,QTableWidget提供单元格项的表格。每个类都继承了QAbstractItemView类的行为,QAbstractItemView类实现了项目选择和标题管理的通用行为。…

16.5 参考文献——深度学习定位

16.5 一种高效鲁棒的多楼层室内环境指纹定位方法 同济大学 Zhao Y, Gong W, Li L, et al. An Efficient and Robust Fingerprint Based Localization Method for Multi Floor Indoor Environment[J]. IEEEa Internet of Things Journal, 2023. 2.相关工作 B.基于深度学习的…

固态硬盘优化设置

目录 前言: 关闭Windows Search 禁用系统保护(不建议) 不建议禁用系统保护原因 关闭碎片整理【机械硬盘】 提升固态硬盘速度 开启TRIM 合理使用固态硬盘的容量 正确关机 关闭开机自启 前言: 电脑配备固态硬盘就能一劳…

自我摸索:如何运营并玩转CSDN?

自注册CSDN以来已有七年之久,但真正运营CSDN也是最近一年的事情,大概就是22年底,参加2022 博客之星 的竞选。接触了很多大佬,也学习模仿着开始玩转CSDN,虽然没有同期运营的大佬们玩的6,但也有一些经验可以来…

this指针相关

一、类对象的存储方式 先说一下结论:一个类的大小,实际就是该类中”成员变量”之和,当然要注意内存对齐 注意空类和没有成员变量的类的大小,编译器给了这两种类一个字节来唯一标识这个类的对象。 class A { public:int _a;int _b…

Python多线程—threading模块

参考:《Python核心编程》 threading 模块的Thread 类是主要的执行对象,而且,使用Thread类可以有很多方法来创建线程,这里介绍以下两种方法: 创建 Thread 实例,传给它一个函数。派生 Thread 的子类&#xf…

计算机体系结构——多处理机系统

一、概述 重要概念 评估指标 通信延迟 通信延迟=发送开销+跨越时间+传输延迟+接收开销 跨越时间 数字信号从发送方的线路端传送到接收方的线路端所经过的时间。 传输时间 全部的消息量除以线路带宽。 多处理机的架构 根…

Unity 之 Addressable可寻址系统 -- HybridCLR(华佗)+Addressable实现资源脚本全热更 -- 实战(二)

Unity 之 Addressable可寻址系统 -- HybridCLRAddressable实现资源脚本全热更 -- 实战 前言实现原理一,HybridCLR相关操作1.1 安装HybridCLR1.2 打包程序集1.2 设置面板1.3 补充元数据1.4 代码加载流程 二,Addressable资源管理2.1 生成热更代码资源2.2 创…

攻防世界——answer_to_everything-writeup

__int64 __fastcall not_the_flag(int a1) {if ( a1 42 )puts("Cipher from Bill \nSubmit without any tags\n#kdudpeh");elseputs("YOUSUCK");return 0LL; } kdudpeh这个东西,根据题目提示sha1加密 import hashlib flagkdudpeh x hashlib…