【大数据存储与处理】实验一 HBase 的基本操作

一、实验目的:

1. 掌握 Hbase 创建数据库表及删除数据库表 

2. 掌握 Hbase 对数据库表数据的增、删、改、查。

二、实验内容:

1、题目 0:进入 hbase shell 

2题目 1:Hbase 创建数据库表 创建数据库表的命令:create '表名', '列族名 1','列族名 2','列族名 N'

3、题目二:HBase 数据库表数据的增、删、改、查 Hbase 增加数据的语法格式如下: 通过命令 put‘表名’, ‘rowKey’, ‘列族 : 列’ , '值' 例:

put 'user', '0001', 'info1:name','jack' put 'user', '0001', 'info2:age','18' put 'user', '0002', 'info1:name','tom' Hbase 查询数据的语法格式如下: 通过命令:scan‘表名’来查看表的所有记录

4、题目三:Hbase 删除数据库表 Hbase 删除数据库的语法格式如下(drop '表名'): 在删除表时,先要屏蔽该表,才能对该表进行删除 第一步: disable ‘表名’,第二步 :drop '表名' Disable 表后可以通过命令:is_enabled '表名',查看当前表是否可用 通过 drop 命令对表进行删除 最后用 list 命令查看 user 是否已被成功删除。 

5题目四 HBase python 基本编程 查看 StudentInfo 表中行键为“001”、列族为“StuInfo”、时间戳为 1 和 2 的版本数据。 

6题目五 HBase python 基本编程 (1) 查询 HBase 中所有数据库表

题目 0:进入 hbase shell

题目一:Hbase 创建数据库表 

创建数据库表的命令:create '表名', '列族名 1','列族名 2','列族名 N' 

例如: 

以下示例创建了数据库表 user: 

如果想查看所有数据库表,可以使用 list 命令。 

可以看到,刚创建的数据库表 user 已经在数据库表的列表中,如果要看 user 表的结构, 

可以用命令:describeuser’,如下截图所示 

通过命令:count '表名来查看表中的所有记录的数量(根据 rowKey 来计算

题目二:HBase 数据库表数据的增、删、改、查 

Hbase 增加数据的语法格式如下

通过命令 put‘表名’rowKey‘列族 ’ , '

通过命令:scan‘表名’来查看表的所有记录

通过命令:get '表名' , 'rowKey' 来查看某个 rowKey 下的所有记录。

通过命令:count '表名' 来查看表中的所有记录的数量(根据 rowKey 来计算)

通过命令:get '表名','rowkey','列族' 来查看某个 rowKey 列族的记录

通过命令:get '表名','rowkey','列族:列来查看 rowKey 列族的某个列记

Hbase 删除数据的语法格式如下:

通过命令:delete‘表名’,‘行名’,‘列族:列' 来删除某个记录

通过命令:get 来查询删除的记录是否删除成功:

例:get 'user','0001','info1:name'

通过命令:deleteall '表名','rowkey' 来删除整行记录

通过命令:scan 来查看整个表的记录来看是否删除成功:

通过命令:truncate '表名' 来清空表所有的记录。

Hbase 更新数据的语法格式如下:

通过命令:put 就是重写一遍,进行覆盖,hbase 没有修改,都是追加

即对相同 rowKey、列族和时间戳的数据再次添加即为数据的更新

比如:put 'user', '0001', 'info1:name','zhangsan'

再次追加:put 'user', '0001', 'info1:name','zhangsan2'

通过 scan 命令可以查看到 rowKey=0001 的列族 info 的栏位 name 的值被成功改为

zhangsan2

题目三:Hbase 删除数据库表

Hbase 删除数据库的语法格式如下(drop '表名'):

在删除表时,先要屏蔽该表,才能对该表进行删除

第一步: disable ‘表名’,第二步 :drop '表名'

Disable 表后可以通过命令:is_enabled '表名',查看当前表是否可用

通过 drop 命令对表进行删除

 最后用 list 命令查看 user 是否已被成功删除。

题目四 HBase python 基本编程

查看 StudentInfo 表中行键为“001”、列族为“StuInfo”、时间戳为 1 和 2 的版本数据。。

题目五 HBase python 基本编程

1) 查询 HBase 中所有数据库表

步骤一:master 主节点打开 HBase 集群上的 thrift 服务。打开新终端输入命令;

hbase thrift start

步骤二:打开新终端输入命令:spyder,打开 python 编程环境

程序运行结果:

2) user 表插入行键“0003“、姓名 name 为“lisi”的一行数据,user 表列族为 info1。

程序运行结果:

HBase shell 输入命令:scan ‘user’

思考题:HBase 的分布式架构中有哪些组件?分别完成什么功能? 

答:

HBase是基于Hadoop的一个分布式列存储系统,其分布式架构主要包括以下组件:

1. RegionServer:RegionServer是HBase的关键组件之一,它运行在集群中的每个节点上,并负责管理和存储一个或多个表中的数据。RegionServer通过维护HBase表的多个Region来实现水平扩展,每个Region都是表的一个子集。RegionServer还负责处理客户端请求并执行基本的IO操作,例如读取、写入和删除数据。

2. HMaster:HMaster是HBase的另一个关键组件,它负责管理整个HBase集群的元数据信息,如表的结构、Region的分配和负载均衡等。HMaster还处理客户端请求,例如创建或删除表、修改表结构等。

3. ZooKeeper:ZooKeeper是一个开源的分布式协调服务,用于管理HBase集群中的配置和状态信息。在HBase集群中,ZooKeeper用于协调所有RegionServer和HMaster之间的通信。

4. HDFS:HDFS是Hadoop分布式文件系统,HBase使用HDFS来存储数据。HBase将数据分成多个HFile,然后将这些文件存储在HDFS上。HDFS提供了高可靠性和高可扩展性,使HBase能够轻松地进行水平扩展。

5. MemStore:MemStore是HBase内存中的数据缓存区,它存储了当前正在写入的数据。当达到一定大小时,MemStore将数据写入磁盘上的HFile中。MemStore在RegionServer级别上工作,即每个RegionServer都有自己的MemStore。

6. HFile:HFile是HBase中的底层存储格式,用于持久化存储HBase表的数据。HFile是一种高效的二进制文件格式,支持快速随机访问和值范围查找。每个Region都被划分为多个HFile,这些文件会被存储在HDFS上。

7. WAL:WAL(Write-Ahead Log)是HBase中的一种日志,用于记录对HBase表的所有写操作,包括插入、更新和删除。WAL可以防止数据丢失和损坏,当RegionServer或HBase集群出现故障时,WAL可以帮助恢复丢失的数据。

这些组件共同构成了HBase的分布式架构,实现了高可靠性、高可用性和高可扩展性。

小结

本实验介绍了 Hbase 的使用环境,要求掌握 Hbase 创建数据库表及删除数据库表,掌

 Hbase 对数据库表数据的增、删、改、查。注意区分 hbase shell 命令和 linux 命令。

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

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

相关文章

重塑数字生产力体系,生成式AI将开启云计算未来新十年?

科技云报道原创。 今天我们正身处一个历史的洪流,一个巨变的十字路口。生成式AI让人工智能技术完全破圈,带来了机器学习被大规模采用的历史转折点。 它掀起的新一轮科技革命,远超出我们今天的想象,这意味着一个巨大的历史机遇正…

【扩散模型】8、DALL-E2 | 借助 CLIP 的图文对齐能力来实现文本到图像的生成

文章目录 一、背景二、方法2.1 Decoder2.2 Prior 三、图像控制3.1 Variations3.2 Interpolations3.3 Text Diffs 四、探索 CLIP 的潜在空间五、文本到图像的生成5.1 先验的重要性5.2 人类评价5.3 多样性和保真性的平衡5.3 在 COCO 上对比 论文:DALLE.2 代码&#x…

JVM-12-即时编译器

Java程序最初都是通过解释器(Interpreter)进行解释执行的,当虚拟机发现某个方法或代码块的运行特别频繁,就会把这些代码认定为“热点代码”(Hot Spot Code),为了提高热点代码的执行效率&#xf…

案例 | 数据中台如何支撑6000+门店降本提效?

对于企业来说,上中台不是目的,借助数据中台让企业建立数据驱动意识,并结合数据中台持续做好各项业务运营,才是根本。 那么对于零售行业来说,该如何利用数据中台为业务赋能?惟客数据以某头部连锁零售企业为…

leetcode 974. 和可被 K 整除的子数组(优质解法)

代码&#xff1a; class Solution {public int subarraysDivByK(int[] nums, int k) {HashMap<Integer,Integer> hashMapnew HashMap();hashMap.put(0,1);int count0; //记录子数组的个数int last0; //前一个下标的前缀和int now0; //当前下标的前缀和for(int i0;…

打开任务管理器的13种方法,总有一款适合你

任务管理器是一个很好的工具,可以帮助你管理应用程序、进程和服务在Windows PC上的运行方式。在使用任务管理器之前,你应该首先知道如何打开它。在本指南中,我们将向你展示运行它的不同方式,无论你使用的是Windows 11还是Windows 10。该列表包括启动任务管理器的十三种方法…

使用Python爬取GooglePlay并从复杂的自定义数据结构中实现解析

文章目录 【作者主页】&#xff1a;吴秋霖 【作者介绍】&#xff1a;Python领域优质创作者、阿里云博客专家、华为云享专家。长期致力于Python与爬虫领域研究与开发工作&#xff01; 【作者推荐】&#xff1a;对JS逆向感兴趣的朋友可以关注《爬虫JS逆向实战》&#xff0c;对分布…

计算机组成原理综合3

41、计算机操作的最小时间单位是__________。A A. 时钟周期 B. 指令周期 C. CPU周期 D. 外围设备 42、微程序控制器中&#xff0c;机器指令与微指令的关系是__________。B A. 每一条机器指令由一条微指令来执行 B. 每一条机器指令由一段用微指令编成…

在做题中学习(35):判断字符是否唯一

面试题 01.01. 判定字符是否唯一 - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a;1.用哈希表&#xff08;创建另一个数组存储&#xff09;然后和原数组一一比对。 时间复杂度O&#xff08;N&#xff09; 空间复杂度 O&#xff08;N&#xff09; 2.位图&#xff08…

使用物理机的burpsuite抓取虚拟机的请求包(虚拟机代理配置)

关于burpsuite抓取本地浏览器的请求包大家应该都会配置吧 我也是第一次配抓取虚拟机的包&#xff0c;最开始遇到了些问题&#xff0c;这里简单给大家分享一下 下面以Windows系统下的Firefox浏览器为例&#xff1a; 首先我还是先添加了一个小狐狸&#xff08;foxyproxy&#…

ubuntu保存分辨率失效解决办法

在VM虚拟机中&#xff0c;遇到修改ubuntu分辨率后&#xff0c;重启后又重置的解决办法。 目前我的ubuntu版本是&#xff1a;ubuntu 18.04.6 版本。 1.首先&#xff0c;在你喜欢的目录建立一个.sh 脚本文件。 终端执行命令&#xff1a;sudo vim xrandr.sh 2.按 i 进入编辑状…

神经网络:优化器和全连接层

SGD&#xff08;随机梯度下降&#xff09; 随机梯度下降的优化算法在科研和工业界是很常用的。 很多理论和工程问题都能转化成对目标函数进行最小化的数学问题。 举个例子&#xff1a;梯度下降&#xff08;Gradient Descent&#xff09;就好比一个人想从高山上奔跑到山谷最低…

【51单片机系列】C51中的中断系统扩展实验

本文是关于51单片机中断系统的扩展实验。 文章目录 一、 扩展实验一&#xff1a;使用外部中断0控制蜂鸣器&#xff0c;外部中断1控制直流电机二、扩展实验二&#xff1a;修改定时器初值&#xff0c;设定3秒钟的定时时间让LED模块闪烁三、扩展实验三&#xff1a;使用定时器1和数…

华为OD机试 - 区间交集 - 深度优先搜索dfs算法(滥用)(Java 2023 B卷 200分)

目录 专栏导读一、题目描述二、输入描述三、输出描述备注用例1、输入2、输出3、说明 四、解题思路1、核心思路&#xff1a;2、具体步骤 五、Java算法源码再重新读一遍题目&#xff0c;看看能否优化一下~解题步骤也简化了很多。 六、效果展示1、输入2、输出3、说明 华为OD机试 2…

Screen记录窗口输出日志

screen是Linux窗口管理器&#xff0c;用户可以建立多个screen会话&#xff0c;每个screen会话又可以建立多个window窗口&#xff0c;每一个窗口就像一个可操作的真实的ssh终端一样。 screen详解&#xff1a;http://www.linuxidc.com/Linux/2013-10/91612.htm Linux Screen超简…

C++_动态二维数组的两种方法

介绍 本文主要介绍使用 动态二维数组的两种方法 (PS:仅作创建 动态二维数组参考,详细使用方法根据需求自行改变) 第一种&#xff1a;连续存储结构的 二维动态数组(需固定 列 大小&#xff0c;可通过下标访问) 缺点: 1.需要在设计二维数组前写死 列 的大小 2.空间利用率不高 优点…

PostgreSQL使用docker部署,设置密码失效问题处理

文章目录 问题描述使用场景排查解决修改已有的文件卷使用SQL初始化 问题描述 PostgreSQL使用docker虚拟化部署&#xff0c;使用docker-compose管理&#xff0c;配置了密码部署在客户现场时&#xff0c;客户的安全扫描&#xff0c;反馈测到PostgreSQL数据库弱密码漏洞查看docke…

神经网络学习小记录76——Tensorflow2设置随机种子Seed来保证训练结果唯一

神经网络学习小记录76——Tensorflow2设置随机种子Seed来保证训练结果唯一 学习前言为什么每次训练结果不同什么是随机种子训练中设置随机种子 学习前言 好多同学每次训练结果不同&#xff0c;最大的指标可能会差到3-4%这样&#xff0c;这是因为随机种子没有设定导致的&#x…

网络安全:专科及普通本科的温柔乡

当代普通大学生的现状是卷又卷不过、躺又躺不平&#xff0c;把大把的青春都荒废在了思考我应该做什么才能有前途的问题上面。当然&#xff0c;这里说的是那些普通学历且对自己的职业生涯甚至是人生没有规划的大学生&#xff0c;包括专科、普通一本二本&#xff0c;并非985、211…

MySQL-2

复习 1. Data数据–>DB数据库–>DBMS数据库管理系统常见DBMS: MySQL oracle sql server db2 … redis Mongodb两大功能&#xff1a; 定义DDL 操纵DML 2. 表table创建表, 行和列 3. MySQL数据类型数据类型分成三大类&#xff1a;数值型、字符型、日期时间类4. 关于列属性…