0


【大数据存储与处理】实验一 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 表的结构,

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

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

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

*题目二:***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 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。

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

标签: oracle 数据库 hbase

本文转载自: https://blog.csdn.net/qq_42531954/article/details/135102274
版权归原作者 friklogff 所有, 如有侵权,请联系我们删除。

“【大数据存储与处理】实验一 HBase 的基本操作”的评论:

还没有评论