大数据实验E5HBase:安装配置,shell 命令和Java API使用

  • 实验目的
  1. 熟悉HBase操作常用的shell 命令和Java API使用;
  • 实验要求
  1. 掌握HBase的基本操作命令和函数接口的使用;
  • 实验平台
  1. 操作系统:Linux(建议Ubuntu16.04或者CentOS 7 以上);
  2. Hadoop版本:3.1.3;
  3. HBase版本:2.2.2;
  4. JDK版本:1.8;
  5. Java IDE:Eclipse。
  • 实验内容、结果及分析(直接在题目后面列出实验结果以及分析,各个小题的代码以截图方式呈现并标注重点代码,包含java代码运行成功截图

(实验代码参考网址:HBase2.2.2安装和编程实践指南_厦大数据库实验室博客)

  1. 编写Java代码完成下列题目(参考课件例子)
  1. 设计Book表(表格形式),包含basicInfo和SaleInfo两个列族,每一个列族中自定义列限定符(至少3个),自定义数据信息;

BOOK表设计

列族名称

列限定符

数据类型

描述

basicInfo

title

String

书籍标题

basicInfo

author

String

作者

basicInfo

publish_date

Date

出版日期

SaleInfo

price

Double

价格

SaleInfo

quantity

Integer

库存数量

SaleInfo

sold

Integer

销售数量

  1. 然后编写Java代码创建Book表,并在HBase shell中验证创建成功;

运行结果:

在HBase shell中验证创建成功:

  1. 编写程序插入自定义的数据信息;

运行结果:

  1. 编写程序获取指定列的数据并打印输出;

运行结果:

  1. 现有以下关系型数据库中的三个表的数据,要求:

学生表(Student)

学号(S_No)

姓名(S_Name)

性别(S_Sex)

年龄(S_Age)

2015001

Zhangsan

male

23

2015002

Mary

female

22

2015003

Lisi

male

24

课程表(Course)

课程号(C_No)

课程名(C_Name)

学分(C_Credit)

123001

Math

2.0

123002

Computer Science

5.0

123003

English

3.0

选课表(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. 将其转换为适合于HBase存储的表,利用表格的方式绘制其存储的概念视图;

HBase表设计

列族名称

列限定符

数据类型

描述

StudentInfo

S_No

String

学号

StudentInfo

S_Name

String

姓名

StudentInfo

S_Sex

String

性别

StudentInfo

S_Age

Integer

年龄

CourseInfo

C_No

String

课程号

CourseInfo

C_Name

String

课程

CourseInfo

C_Credit

Double

学分

SC

SC_Sno

String

学号

SC

SC_Cno

String

课程号

SC

SC_Score

Integer

成绩

  1. 实现createTable(String tableName, String[] cfs)函数:创建表,参数tableName为表的名称,字符串数组cfs为存储记录各个列族名称的数组。要求当HBase中已经存在名为tableName的表的时候,先删除原有的表,然后再创建新的表;

相关代码:

执行结果:

验证:

  1. 实现addRow(String tableName, String row, String[] fields, String[] values),向表tableName中的行row(可以用学生姓名S_No表示)、指定列中添加数据;fields表示插入的数据记录对应的列名集合,其中每一个元素形式为”列族名:列限定符”;

  1. 使用上面定义的两个函数实现表的创建以及数据的添加,请思考如何实现多条数据记录的快速添加?使用尽可能少量的代码实现;
  1. 在hbase shell中验证4)中数据添加的结果;
  1. 设计modifyData(String tableName, String row, String filed, String val)函数实现指定数据的修改,其中filed形式为”列族名:列限定符”;调用该函数,将2015002 同学的S_Name和Computer Science分数分别修改为你的姓名和学号的后两位;

  1. 定义scanRow(String tableName, String row, String[] fields),查看指定列中的数据内容,并将查找的结果按下下列形式打印输出“row filed1,val1 filed2,val2 …”;其中fields表示插入的数据记录对应的列名,其中每一个元素形式为”列族名:列限定符”;调用该函数验证7)中数据是否修改成功;

运行结果

  1. 定义deleteRow(String tableName, String row)函数,删除指定行键对应的数据记录,并调用该函数删除2015001相应的数据记录,并验证删除成功;

验证:

  1. 总结HBase使用过程中的优缺点

优点:

  1. 大规模数据支持:HBase设计用于处理大量的数据,非常适合需要扩展到数千台服务器的大数据应用。
  2. 高性能:HBase提供实时读写访问,因为它存储数据在内存中,所以访问速度非常快。
  3. 列族式存储:数据按照列族进行存储,便于数据的分组和权限管理。
  4. 易于横向扩展:可以通过增加更多的服务器来扩展系统,而不需要停机。
  5. 高可用性:HBase运行在Hadoop生态系统之上,可以利用Hadoop的高可用性特性。

缺点:

  1. 学习曲线陡峭:对于新手来说,HBase的概念和API可能比较复杂,需要一定的时间来学习和理解。
  2. 有限的查询能力:HBase不支持传统的SQL查询,对于复杂的查询操作不太友好。
  3. 维护成本:HBase集群可能需要专业的维护团队来管理,尤其是在大规模部署时。
  4. 数据模型限制:HBase最适合稀疏表和多维数据模型,对于需要复杂事务处理的应用可能不太适合。
  5. 生态系统集成:与其他数据系统集成可能需要额外的工作,例如与实时处理系统或OLAP引擎的集成。

  • 实验小结(问题和收获)

问题:最初接触HBase时,它的数据模型和API让我感到困惑,尤其是列族和列限定符的概念。配置HBase集群需要对Hadoop生态系统有深入的了解,配置过程中遇到了不少问题。在实验过程中,我发现自己需要学习如何优化HBase的性能,包括内存管理、预分区和压缩策略等。在进行数据操作时,我遇到了一些错误,例如尝试删除一个不存在的行,或者在错误的列族中插入数据。

收获:

通过这次实验,我获得了使用HBase进行数据存储和查询的实际经验。更好地理解了NoSQL数据库的概念,以及它们与传统关系型数据库的区别。学会了如何设计适合HBase的数据模型,以及如何有效地存储和检索数据。在解决实验中遇到的问题时,我提高了自己的问题解决能力,学会了查阅文档和社区资源。我对Hadoop生态系统有了更全面的认识,了解了HBase在大数据处理中的作用。

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

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

相关文章

【Vivado】xdc约束文件编写

随手记录一下项目中学到的约束文件编写技巧。 时序约束 创建生成时钟 参考链接: Vivado Design Suite Tcl Command Reference Guide (UG835) Vivado Design Suite User Guide: Using Constraints (UG903) 通过Clocking Wizard IP创建的时钟(MMCM或…

Electron + Vue 简单实现窗口程序(Windows)从零到一

前言 想做一个桌面应用程序,一直没有找到简单快速可上手的框架。刚好有点前端的底子,就发现了Electron。关于Electron的介绍,请移步 https://www.electronjs.org/ 查阅。 简单来说,引用官网的话,Electron是一个使用 …

健康养生生活

在快节奏的现代生活中,健康养生愈发成为人们关注的焦点。它不仅是一种生活方式,更是对生命质量的珍视与呵护。 健康养生,饮食为先。合理的膳食结构是维持身体健康的基石。我们应确保每餐营养均衡,增加蔬菜、水果、全谷物以及优质蛋…

如何避免数据丢失:服务器恢复与预防策略

在当今数字时代,数据对于个人和企业来说都至关重要。数据丢失可能会导致严重的财务损失、业务中断甚至法律责任。因此,采取措施防止数据丢失至关重要。本文将讨论服务器数据丢失的常见原因以及如何防止数据丢失的有效策略。 服务器数据丢失的常见原因 服…

网站访问统计A/B测试与数据分析

在网站运营中,访问统计和数据分析是优化用户体验和提高转化率的关键工具。A/B测试作为一种数据驱动的方法,能够帮助网站运营者验证设计和内容的有效性。A/B测试的基本原理是同时展示两个不同的版本(A和B),通过比较它们…

芯驰X9SP与汽车麦克风-打造无缝驾驶体验

当今汽车技术的进步不仅提升了驾驶体验,还改变了我们与车辆互动的方式。汽车麦克风作为车内语音控制系统的重要组成部分,正逐渐成为现代汽车的标配。 技术原理 汽车麦克风主要依赖于声音传感技术,通常包括电容式麦克风和动圈式麦克风。这些…

界面控件Syncfusion Essential Studio®现在已完全支持 .NET 9

Syncfusion Essential Studio现在完全支持 .NET 9,可最新版本2024 Volume 3 版本中使用!通过此更新,Blazor、.NET MAUI、WPF、WinForms、WinUI和ASP.NET Core 平台中的 Syncfusion 组件以及文档处理库已准备好让您利用 .NET 9 中的最新功能。…

剑指offer(专项突破)---字符串

总目录:剑指offer(专项突破)---目录-CSDN博客 1.字符串的基本知识 C语言中: 函数名功能描述strcpy(s1, s2)将字符串s2复制到字符串s1中,包括结束符\0,要求s1有足够空间容纳s2的内容。strncpy(s1, s2, n)…

yarn : 无法加载文件 E:\node\node_global\yarn.ps1,因为在此系统上禁止运行脚本

先确保安装了yarn —— npm install -g yarn 终端输入set-ExecutionPolicy RemoteSigned 若要在本地计算机上运行您编写的未签名脚本和来自其他用户的签名脚本,请使用以下命令将计算机上的执行策略更改为RemoteSigned 再去使用yarn okk~

python学opencv|读取视频(二)制作gif

【1】引言 前述已经完成了图像和视频的读取学习,本次课学习制作gif格式动图。 【2】教程 实际上想制作gif格式动图是一个顺理成章的操作,完成了图像和视频的处理,那就自然而然会对gif的处理也产生兴趣。 不过在opencv官网、matplotlib官网…

高校心理教育辅导|基于springBoot的高校心理教育辅导系统设计与实现(附项目源码+论文+数据库)

私信或留言即免费送开题报告和任务书(可指定任意题目) 目录 一、摘要 二、相关技术 三、系统设计 四、数据库设计 五、核心代码 六、论文参考 七、源码获取 一、摘要 随着Internet技术的发展,心理教育辅导系统应运而生&…

网络安全、Web安全、渗透测试之笔经面经总结(一)

本篇文章总结涉及以下几个方面: 一:对称加密非对称加密? 对称加密:加解密用同一密钥,密钥维护复杂n(n-1)/2,不适合互联网传输密钥,加解密效率高。应用于加密数据。 非…

Nginx静态资源配置

基本配置原则 明确资源目录:为不同类型的静态资源指定不同的路径,这样可以避免路径冲突,并且便于管理。正确设置文件权限:确保 Nginx 具有读取静态资源的权限。缓存优化:为静态资源设置缓存头(如 expires&…

华为NPU服务器昇腾Ascend 910B2部署通义千问Qwen2.5——基于mindie镜像一路试错版(三)

文章目录 前言纯模型推理启动服务后面干什么?这可咋整啊?愁死了!总结前言 这是咱这个系列的第三个文章了。 毕竟,这是我好几天摸索出的经验,能帮助各位在几个小时内领会,我觉得也算是我的功劳一件了。 所以,一是希望大家耐心看下去,耐心操作下去;而是恳请各位多多关…

Pixtral Large开源:Mistral AI的1240亿参数多模态模型超越GPT-4o等竞争对手

Pixtral Large是什么 Pixtral Large是由法国人工智能初创公司Mistral AI开发的超大多模态模型,拥有1240亿参数,2024年11月18日正式对外发布。它基于Mistral Large 2开发而成,具备1230亿参数的多模态解码器和10亿参数的视觉编码器。这个模型能…

阿里云整理(二)

阿里云整理 1. 访问网站2. 专业名词2.1 域名2.2 域名备案2.3 云解析DNS2.4 CDN2.5 WAF 1. 访问网站 用户使用浏览器访问网站大体分为几个过程: 用户在浏览器输入域名URL,例如www.baidu.com。 不过,浏览器并不知道为该域名提供服务的服务器具…

【联表查询】.NET开源 ORM 框架 SqlSugar 系列

.NET开源 ORM 框架 SqlSugar 系列 【开篇】.NET开源 ORM 框架 SqlSugar 系列【入门必看】.NET开源 ORM 框架 SqlSugar 系列【实体配置】.NET开源 ORM 框架 SqlSugar 系列【Db First】.NET开源 ORM 框架 SqlSugar 系列【Code First】.NET开源 ORM 框架 SqlSugar 系列【数据事务…

标贝科技受邀出席2024东湖国际人工智能高峰论坛并入选数据要素合作伙伴名单

近日,备受瞩目的2024东湖国际人工智能高峰论坛在中国光谷科技会展中心隆重召开。会议以“智联世界,共创未来”为主题,省市相关单位、专家学者、产学研各界百余家联合体单位齐聚一堂,共话人工智能领域的最新技术及产业发展趋势。会…

使用AI工具Screenshot to Code将UI设计图翻译成代码

一、获取openAI apikey。 一般有两种方式,一种是到openAI官网注册账号,付费申请GPT4的apikey。另一种是某宝买代理。我这里采用第二种。 二、安装Screenshot to Code 1.到github下载源码。 2.启动,两种方式:源码启动和docker启动…

VMware Workstation Pro安装教程 (全图文保姆级)

一、前言 系统:Windows 11时间:2024/12/04需求:注册:broadcom(邮箱)难点:在官网找到下载链接 二、说明 建议前往官网(https://www.vmware.com)下载,可能加…