大数据实验三-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、完整报告在文章开头,挂载。

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

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

相关文章

如何降低AI功耗? —— 超低功耗的仿生硬件

一、背景 仿生硬件(Bionic Hardware)这一术语通常指的是受自然界的生物系统启发而设计制造的电子或机械硬件设备,它们在功能、结构、材料、能源效率等方面模仿生物体的特性,以实现更高效、智能、自适应或环境友好的性能。在人工智…

unity之 “Allow ‘unsafe‘ code“ 在哪里。

导入unity中的代码,出现如下错误,该如何解决? Unsafe code may only appear if compiling with /unsafe. Enable "Allow unsafe code" in Player Settings to fix this error 解决这个问题,只需要设置就可以。 设置的地…

达梦体系结构:数据库文件

达梦体系结构:数据库文件 存储结构表空间与数据文件配置参数文件控制文件其他数据库文件 达梦数据库由数据库和实例构成: 数据库是指磁盘上存放的数据库文件的集合,包括参数文件、控制文件、数据文件、日志文件等。实例是指一组运行的数据库…

创意绘图画画小程序:融合白板黑板功能,开启绘画新纪元

创意绘图画画小程序:融合白板黑板功能,开启绘画新纪元 在数字化时代的浪潮下,艺术创作正逐渐摆脱传统形式的束缚,以更加多元、便捷的方式走进人们的生活。其中,创意绘图画画小程序以其独特的白板画、黑板画功能&#…

了解next.js框架特点,以及总结Next.js 常用的api和用法

Next.js 是一个流行的 React 框架,它提供了很多开箱即用的功能,如服务器渲染、静态导出、代码拆分等,让开发者可以更轻松地构建 React 应用。下面是对 Next.js 的深度解析,以及附带的代码实例。 1.Next.js 框架特点 1. 服务器渲染(Server-side Rendering,SSR) Next.j…

FANUC机器人仿真软件ROBOGUIDE通过备份文件创建工作单元的方法介绍

FANUC机器人仿真软件ROBOGUIDE通过备份文件创建工作单元的方法介绍 如下图所示,首先要确定你的机器人控制器的软件版本,具体可以在示教器上查看,如下图所示, 如下图所示,该机器人的控制器版本为V8.30P, 按照正确步骤对机器人进行备份操作,具体的流程可参考以下链接中的内…

代码随想录算法训练营第30天| 332.重新安排行程*、 51. N皇后*、 37. 解数独*

332.重新安排行程* 力扣题目链接 代码 示例代码 class Solution { private: // unordered_map<出发机场, map<到达机场, 航班次数>> targets unordered_map<string, map<string, int>> targets; bool backtracking(int ticketNum, vector<strin…

k8s 部署 canal 集群,RocketMQ 模式

k8s 部署 canal 集群&#xff0c;RocketMQ 模式 k8s 部署 canal 集群&#xff0c;RocketMQ 模式前提MySQLRocketMQ制作 canal-admin、canal-server 镜像 部署 zookeeper部署 canal-admin部署 canal-server测试 k8s 部署 canal 集群&#xff0c;RocketMQ 模式 前提 MySQL 开启…

vulnhub----natraj靶机

文章目录 一.信息收集1.网段探测2.端口扫描3.版本服务探测4.漏扫5.目录扫描 二.漏洞利用1.分析信息2..fuzz工具 三.getshell四.提权六.nmap提权 一.信息收集 1.网段探测 因为使用的是VMware&#xff0c;靶机的IP地址是192.168.9.84 ┌──(root㉿kali)-[~/kali/vulnhub] └─…

JVM-面试-4-连炮,你能顶住么?

1、JVM的内存区域是怎么划分的&#xff1f; JVM的内存划分中&#xff0c;有部分区域是线程私有的&#xff0c;有部分是属于整个JVM进程&#xff1b;有些区域会抛出OOM异常&#xff0c;有些则不会&#xff0c;了解JVM的内存区域划分以及特征&#xff0c;是定位线上内存问题的基础…

Lua 和 Love 2d 教程 二十一点朴克牌 (上篇lua源码)

GitCode - 开发者的代码家园 Lua版完整原码 规则 庄家和玩家各发两张牌。庄家的第一张牌对玩家是隐藏的。 玩家可以拿牌&#xff08;即拿另一张牌&#xff09;或 停牌&#xff08;即停止拿牌&#xff09;。 如果玩家手牌的总价值超过 21&#xff0c;那么他们就爆掉了。 面牌…

Django源码之路由的本质(上)——逐步剖析底层执行流程

目录 1. 前言 2. 路由定义 3. 路由定义整体源码分析 3.1 partial实现path函数调用 3.2 图解_path函数 3.3 最终 4.URLPattern和Pattern的简单解析 5. 小结 1. 前言 在学习Django框架的时候&#xff0c;我们大多时候都只会使用如何去开发项目&#xff0c;对其实现流程并…

【sqlite3】网络socket编程温度采集智能存储与上报项目技术------sqlite3数据库基础

项目源码&#xff1a;https://gitee.com/TJF865975/project1_ds18b20&#xff0c;此为本人gitee仓库&#xff0c;欢迎 Watch、Star、Fork。 1.sqlite3简介 SQLite3是一种轻量级的关系型数据库&#xff0c;可以在本地磁盘上存储数据。 2.sqlite3安装 sudo apt-get install s…

鸽哒言讯独家最新im即时通讯系统双端源码下载 (中越双语)带安卓未封装、苹果未封装、PC端(全开源)+部署教程

独家最新im即时通讯系统双端源码下载 &#xff08;中越双语&#xff09;带安卓未封装、苹果未封装、PC端&#xff08;全开源&#xff09;部署教程鸽哒IM即时通讯系统是一款类似于weixin的即时通讯软件&#xff0c;具有独立开发的特点。与网络其他聊天软件相比&#xff0c;即时聊…

文件同步工具哪个好

背景 今天介绍一款文件实时同步工具PanguFlow,它能够实时地监控源端文件夹的变化&#xff0c;然后将这种变化实时同步到目标端&#xff0c;对于文件灾备冗余的场景可谓是再合适不过了&#xff0c;一些老铁可能有这样的需求&#xff0c;比如两台服务器需要做文件的双机热备&…

【Python 进阶笔记1】__call__ 函数

1. 前言 __call__是Python中的一个特殊方法&#xff08;也称为魔法方法&#xff09;。当定义了这个方法后&#xff0c;这个类的实例&#xff08;对象&#xff09;可以像普通函数那样被调用。这意味着&#xff0c;如果你创建了一个该类的实例&#xff0c;你可以直接用括号传递参…

模拟退火遗传算法GASA-附MATLAB代码

模拟退火遗传算法&#xff08;Simulated Annealing Genetic Algorithm&#xff0c;SAGA&#xff09;结合了模拟退火算法&#xff08;Simulated Annealing&#xff0c;SA&#xff09;和遗传算法&#xff08;Genetic Algorithm&#xff0c;GA&#xff09;的优点&#xff0c;用于解…

软件测试用例(3)

目录 什么样的测试用例是一个好的测试用例 什么是测试用例的有效性? 测试用例的粒度和评价 粒度 评价 什么样的测试用例是一个好的测试用例 什么是测试用例的有效性? 测试用例的有效性指的是测试用例是否能够有效地检测出软件系统中的错误或问题. 一个有效的测试用例应…

956: 约瑟夫问题的实现

【学习版】 【C语言】 #include <iostream> #include <string> #include <algorithm> #include <cmath> #include <cstdlib> using namespace std; typedef struct Lnode {int date;struct Lnode* next; }Lnode, * Linklist; int In(Linklist&…

查看Git用户名/密码/邮箱,及设置git配置

一、查看信息&#xff1a; 查看用户名 &#xff1a;git config user.name 查看密码&#xff1a; git config user.password 查看邮箱&#xff1a;git config user.email 二、设置信息&#xff08;--global 全局设置&#xff09; git config --global user.name "xxxx名称…