当前位置: 首页 > news >正文

大数据实验三-HBase编程实践

目录

一.实验内容

二.实验目的

三.实验过程截图及说明

1、安装HBase

2、配置伪分布式模式:

3、使用hbase的shell命令来操作表:

4、使用hbase提供的javaAPI来编程实现类似操作:

5、实验总结及心得体会

6、完整报告在文章开头,挂载。


一.实验内容

HBase编程实践:

1)在Hadoop基础上安装HBase;

2)使用Shell命令(create:创建表、list:列出HBase中所有的表信息、put:向表、行、列指定的单元格添加数据等);使用HBase常用Java API创建表、插入数据、浏览数据。

二.实验目的

1、理解HBase在Hadoop体系结构中的角色。

2、熟练使用HBase操作常用的Shell命令。

3、熟悉HBase操作常用的JavaAPI。

三.实验过程截图及说明

1、安装HBase

(1)解压HBase文件到/usr/local目录下,并将目录改名为hbase:

(2)设置访问权限:

(3)编辑~/.bashrc文件:

vim ~/.bashrc
# 如果没有引入过PATH请在~/.bashrc文件尾行添加如下内容:
export PATH=$PATH:/usr/local/hbase/bin

然后输入source ~/.bashrc使配置立即生效

(4)输入hbase version验证一下:

(5)版本没问题,设置成功。但是发现上图第一个箭头所指处有一个警告,SLF4J警告消息表示类路径中存在多个SLF4J绑定。警告提供了检测到的绑定位置,并告知你只能同时使用一个绑定。可以用(6)(7)两步来解决。

(6)进入HBase配置目录,修改配置:

(7)将此行的注释去掉:

(8)验证一下,看看hbase的版本,发现警告消失了,配置成功:

2、配置伪分布式模式:

(1)配置hbase-env.sh文件:

(2)配置hbase-site文件:

(3)测试运行hbase。先要开启Hadoop,再开hbase,开关顺序一定要是(开启Hadoop->开启hbase->关闭hbase->关闭Hadoop):

开Hadoop:

开hbase:

(4)开启hbase的shell命令:

3、使用hbase的shell命令来操作表:

(1)创建表:

(2)list:

(3)使用put命令向某表某行中插入一列:

参数说明: 在student表的行键为95001的行中,插入一个名为Sname的列,并设置其值为YangJile。此处的行键可以代指学生的学号,也可表示为student表添加了学号为95001,名字为YangJile的一行数据,其行键为95001。

hbase中用put命令添加数据,注意:一次只能为一个表的一行数据的一个列,也就是一个单元格添加一个数据,所以直接用shell命令插入数据效率很低,在实际应用中,一般都是利用编程操作数据。

参数说明:在student表的行键为95001的行中,在course列族下存储一个名为math的列,并设置其属性值为80。下同。

(4)使用get命令查看某表的某行的值:

get命令,用于查看表的某一行数据。

(5)使用scan命令查看表的所有行:

scan命令用于查看某个表的全部数据。

(6)删除表的两步走操作:

先disable,让表不可用,再drop删除表。

4、使用hbase提供的javaAPI来编程实现类似操作:

(1)在com.ecjtu下创建hbase包,再创建一个dataSqlOP.java文件:

(2)导入需要用到的依赖:

(3)编写初始化函数:

(4)编写创建表函数:

(5)编写插入数据函数;

(6)编写获取数据函数:

(7)编写主函数,在主函数中调用各个方法测试运行:

(8)运行结果:

5、实验总结及心得体会

实验总结:

在本实验中,我深入了解了HBase在Hadoop体系结构中的角色,以及其常用的Shell命令和Java API。

(1)首先,我在Hadoop基础上成功安装了HBase,为其后续应用奠定了基础。

(2)在Shell命令方面,我实践了创建表(create)、列出HBase中所有的表信息(list)、向表、行、列指定的单元格添加数据(put)等操作。这些命令帮助我们更好地管理和操作HBase表格,为大数据处理提供了便利。

(3)此外,我还使用了HBase常用的Java API来创建表、插入数据、浏览数据。通过这些API,我实现了对HBase表格的编程操作,进一步提高了数据处理效率。

(4)实验的二个目的是让我熟练掌握HBase的操作,从而在实际应用中能够灵活运用。通过对HBase角色、Shell命令和Java API的学习,我能够更好地应对各种数据处理挑战,为我国大数据领域的发展贡献力量。

(5)总之,本次实验使我受益匪浅,对HBase的认识和操作水平得到了全面提升。在未来的学习和工作中,我将不断探索和实践,为大数据技术的发展贡献自己的力量。

心得体会:

在这次的HBase编程实践中,我深深地理解了HBase在Hadoop体系结构中的角色。HBase是一个分布式的、版本化的典型非关系型数据库,它被设计用来处理海量数据,并提供了随机读写访问数据的能力。在Hadoop的文件系统HDFS之上,HBase提供了实时读写访问数据的能力。

我首先在Hadoop环境下安装了HBase,然后使用Shell命令创建了一个表,并通过list命令列出了HBase中所有的表信息。接着,我使用put命令向表、行、列指定的单元格添加数据。这些操作都是通过HBase的Shell命令完成的,这让我对HBase的操作有了初步的了解。

接下来,我使用了HBase的Java API进行编程。在这个过程中,我深入了解了HBase的内部机制,包括它如何在内部管理数据,以及如何通过Java API进行操作。我也了解了HBase的一些特性,比如它如何支持实时读写,以及它如何通过水平扩展来应对大数据量的存储和处理。

总的来说,这次的HBase编程实践让我收获颇丰。我不仅掌握了HBase的基本操作,而且对HBase的工作原理和特性有了更深的理解。我相信这些知识和经验将对我未来的学习和工作产生积极的影响。

6、完整报告在文章开头,挂载。

相关文章:

  • intellij idea 使用git ,快速合并冲突
  • 实现 select 中嵌套 tree 外加搜索
  • ROS 2边学边练(12)-- 创建一个工作空间
  • 提高空调压缩机能效的通用方法
  • 957: 逆置单链表
  • php获取拼多多详情api接口、商品主图
  • 算法基本概念
  • 6000000IOPS!FASS×kunpeng920全新突破
  • 小林coding图解计算机网络|基础篇01|TCP/IP网络模型有哪几层?
  • 【面试八股总结】超文本传输协议HTTP(二)
  • cesium键盘控制相机位置和姿态
  • 如何评估基于指令微调的视觉语言模型的各项能力-MMBench论文解读
  • 设计模式:外观模式
  • LeetCode | 数组 | 双指针法 | 27. 移除元素【C++】
  • windows安装Openssl
  • [rust! #004] [译] Rust 的内置 Traits, 使用场景, 方式, 和原因
  • __proto__ 和 prototype的关系
  • bootstrap创建登录注册页面
  • Docker 1.12实践:Docker Service、Stack与分布式应用捆绑包
  • hadoop入门学习教程--DKHadoop完整安装步骤
  • puppeteer stop redirect 的正确姿势及 net::ERR_FAILED 的解决
  • 工作踩坑系列——https访问遇到“已阻止载入混合活动内容”
  • 关于extract.autodesk.io的一些说明
  • 如何在 Tornado 中实现 Middleware
  • 使用Maven插件构建SpringBoot项目,生成Docker镜像push到DockerHub上
  • 说说动画卡顿的解决方案
  • 我看到的前端
  • 一个6年java程序员的工作感悟,写给还在迷茫的你
  • 在GitHub多个账号上使用不同的SSH的配置方法
  • 白色的风信子
  • 阿里云服务器如何修改远程端口?
  • ​决定德拉瓦州地区版图的关键历史事件
  • #LLM入门|Prompt#2.3_对查询任务进行分类|意图分析_Classification
  • (C)一些题4
  • (html5)在移动端input输入搜索项后 输入法下面为什么不想百度那样出现前往? 而我的出现的是换行...
  • (poj1.3.2)1791(构造法模拟)
  • (附源码)springboot 房产中介系统 毕业设计 312341
  • (理论篇)httpmoudle和httphandler一览
  • (原)记一次CentOS7 磁盘空间大小异常的解决过程
  • (原创)攻击方式学习之(4) - 拒绝服务(DOS/DDOS/DRDOS)
  • (转)3D模板阴影原理
  • .NET C# 使用 SetWindowsHookEx 监听鼠标或键盘消息以及此方法的坑
  • .NET 服务 ServiceController
  • [ NOI 2001 ] 食物链
  • [Angular] 笔记 7:模块
  • [C#]OpenCvSharp结合yolov8-face实现L2CS-Net眼睛注视方向估计或者人脸朝向估计
  • [Django 0-1] Core.Checks 模块
  • [Docker]十二.Docker consul集群搭建、微服务部署,Consul集群+Swarm集群部署微服务实战
  • [emuch.net]MatrixComputations(7-12)
  • [IE 技巧] 显示/隐藏IE 的菜单/工具栏
  • [iOS]中字体样式设置 API
  • [java/jdbc]插入数据时获取自增长主键的值
  • [LeetCode] 596:超过5名学生的课
  • [NAND Flash 6.1] 怎么看时序图 | 从时序理解嵌入式 NAND Read 源码实现
  • [NAND Flash 6.2] NAND 初始化常用命令:复位 (Reset) 和 Read ID 和 Read UID 操作和代码实现