上海古都建筑设计集团,上海办公室装修设计公司,上海装修公司高质量的内容分享社区,上海装修公司我们不是内容生产者,我们只是上海办公室装修设计公司内容的搬运工平台

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

guduadmin11天前
一、实验目的:

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 的基本操作,第1张

题目一:Hbase 创建数据库表 

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

例如: 

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

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

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

create 'user', 'info1', 'info2'

 

可以用命令:describe‘user’,如下截图所示 

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

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

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

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

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

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

put 'user', '0001', 'info1:name', 'jack'

put 'user', '0001', 'info2:age', '18'

put 'user', '0002', 'info1:name', 'tom'

 

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

scan 'user'

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

get 'user', '0001'

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

count 'user'

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

get 'user', '0001', 'info1'

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

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

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

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

delete 'user', '0001', 'info1:name'

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

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

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

deleteall 'user', '0001'

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

scan 'user'

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

truncate 'user'

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

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

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

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

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

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

zhangsan2

put 'user', '0001', 'info1:name','zhangsan2'

scan 'user'

题目三:Hbase 删除数据库表

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

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

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

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

通过 drop 命令对表进行删除

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

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

题目四 HBase python 基本编程

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

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

题目五 HBase python 基本编程

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

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

hbase thrift start

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

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

程序运行结果:

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

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

from thrift import Thrift
from thrift.tranaport import TSocket
from thrift.transport import TTransport
from thrift.protocol import TBinaryProtocol
from hbase import Hbase
from hbase.ttypes import *
transport = TSocket.Tsocket('192.168.226.132', 9090)
transport = TTransport.TBufferedTransport(transport)
protocol = TBinaryProtoco1.TBinaryProtocol(transport)
client = Hbase.client(protocol)
transport.open()
row = '0003'
mutations = [Mutation(column="info1 : name ", value='lisi')]
client.mutateRow('user3', row, mutations)

程序运行结果:

 

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

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 命令。

网友评论

搜索
最新文章
热门文章
热门标签