络腮胡菲菲 发表于 2024-6-22 12:55:03

【云盘算】HBase表操纵

媒介

HBase是一个分布式、可扩展的、非关系型的NoSQL数据库。它是创建在Hadoop HDFS上的一个开源的数据库管理体系。HBase的计划目标是提供高可靠性、高可扩展性、高性能、高耽误、高容错性和高可用性。
HBase是一种面向列的数据库,可以处理海量的结构化和半结构化数据。它可以存储大量的数据,并能够快速索引和检索数据,适用于须要高速在线访问大量数据的应用程序。
在HBase中,数据按照表格的形式举行存储,类似于关系型数据库中的表。每个表格都具有一个行键和多个列族。行键是一个唯一标识符,用于在表格中定位一行数据。列族是相关列的集合,每个列族都由一个标识符和多个列构成。
HBase具有众多的特性,包括高可用性、自动分片、支持多版本数据、支持复杂的数据类型、支持MapReduce盘算等。它还具有精良的扩展性,可以根据须要添加新的节点来扩展集群的规模,以满足更高的数据处理需求。
总的来说,HBase是一个高性能、高可扩展性的NoSQL数据库,适用于须要处理大量结构化和半结构化数据的分布式应用程序。它可以通过灵活的数据模子和支持复杂数据类型的功能,资助开发人员快速构建可扩展的应用程序。
一、shell创建

Hbase命令:
进入shell:
hbase shell
https://img-blog.csdnimg.cn/173dd120c17347358b2b2aa70d09959b.png
使用help "COMMAND"命令获取特定命令的帮助信息,例如help "get"将显示关于get命令的帮助信息(注意需要使用引号)。

命令分组:命令被分组管理。使用help "COMMAND_GROUP"命令获取特定命令组的帮助信息,例如help "general"将显示关于general命令组的帮助信息。

常见的命令组包括:general、ddl、namespace、dml、tools、replication、snapshots、configuration、quotas、security、procedures、visibility labels、rsgroup和storefiletracker。

你可以执行各种命令来进行表的操作、数据的增删改查、配置管理、权限管理等。
HBase Shell提供了一些常用命令示例:
create:创建表。
disable:禁用表。
enable:启用表。
describe:显示表的结构和属性。
get:获取指定行的数据。
put:插入或更新数据。
scan:扫描表中的数据。
delete:删除指定行或列的数据。
list:列出所有表或命名空间。
alter:修改表的结构或属性。
count:统计表中的行数。
二、操纵

创建命名空间类似于Mysql中的数据库:create_namespace
创建ns1,ns2命名空间
hbase:005:0> create_namespace 'ns1'
Took 0.2768 seconds                                                                                                                                                
hbase:006:0> create_namespace 'ns2'
Took 0.1402 seconds
https://img-blog.csdnimg.cn/60461dada83440a6a1ed7ef5523d50e4.png
检察一下创建的命令空间列表:list_namespace
这里的default,hbase是hbase自带的命名空间
hbase:008:0> list_namespace
NAMESPACE                                                                                                                                                         
default                                                                                                                                                            
hbase                                                                                                                                                               
ns1                                                                                                                                                               
ns2                                                                                                                                                               
4 row(s)
Took 0.0132 seconds                                                                                                                                                
#正则方式查看以ns开头命名空间
hbase:009:0> list_namespace "ns*"
NAMESPACE                                                                                                                                                         
ns1                                                                                                                                                               
ns2                                                                                                                                                               
2 row(s)
Took 0.0156 seconds   
https://img-blog.csdnimg.cn/ced89e31d7a54a4f9d0984976e85d117.png
检察命名空间属性:describe_namespace
因为没有设置这里没有,须要在创建命名空间时设置
hbase:010:0> describe_namespace 'ns1'
DESCRIPTION                                                                                                                                                         
{NAME => 'ns1'}                                                                                                                                                   
Quota is disabled
Took 0.1844 seconds
https://img-blog.csdnimg.cn/13ad6a9ecc284ca489be208ccc866d92.png
创建一个表t1包含三列f1,f2,f3:create
hbase:011:0> create 't1','f1','f2','f3'
Created table t1
Took 1.2317 seconds                                                
=> Hbase::Table - t1

https://img-blog.csdnimg.cn/678f87efbf57413e989d626a46c0170e.png
检察我们创建的表:list
https://img-blog.csdnimg.cn/4f6cd095832842e5aa608957912d21c6.png
在我们的web端也是能够看到的:http://HbaseIP:16010/
https://img-blog.csdnimg.cn/462a580b8c6b4c759b7e9c0c8fdcbf1f.png
如今我们做一个实例做一个门生表:
https://img-blog.csdnimg.cn/1425488547454d3c946ddd8c35d83d85.png
https://img-blog.csdnimg.cn/55060cb7e9954fa49e8dcfee4e2a125c.png
添加数据:put
put 't1', 'row1', 'f1:name', 'tom'
put 't1', 'row1', 'f1:age', 18
put 't1', 'row1', 'f1:height', 172
put 't1', 'row2', 'f1:name', 'jack'
put 't1', 'row2', 'f1:age', 19
put 't1', 'row2', 'f1:height', 180
https://img-blog.csdnimg.cn/b54f804abf164b81a7b6b18c2079c3ae.png
检察插入的数据(用于数据量较少情况):scan ‘t1’
注意:数据量少情况不然卡死
scan 't1'
https://img-blog.csdnimg.cn/a99a65f2d504435ea44df8357407cce7.png
使用get命令获取某单位格数据:get
get 't1','row1','f1:name'
get 't1','row1','f1:age'
get 't1','row1','f1:height'
get 't1','row2','f1:name'
get 't1','row2','f1:age'
get 't1','row2','f1:height'
https://img-blog.csdnimg.cn/2eacc1f2a0d34a90a32ed7aae7fa6157.png
https://img-blog.csdnimg.cn/37546388d26945f892bd021fc9276714.png
这样创建的表存在一个致命问题:版本只能存在一个,因为我们创建t1时并没有做属性
可以通过:alter ‘t1’,{NAME => ‘f1’,VERSIONS => 3}修改我们的表
我们这直接新建一个
https://img-blog.csdnimg.cn/13e30710b30948e8bff099788640aa9d.png
我们重新创建一个可以保存多版本的表:create
创建一个可以保存三个版本的student表
create 'student',{NAME => 'f1',VERSIONS => 3}
https://img-blog.csdnimg.cn/b77dceab42ef4590a2c39e7a9f7401f5.png
再次写入数据到student表:
put 'student', 'row1', 'f1:name', 'tom'
put 'student', 'row1', 'f1:age', 18
put 'student', 'row1', 'f1:height', 172
put 'student', 'row2', 'f1:name', 'jack'
put 'student', 'row2', 'f1:age', 19
put 'student', 'row2', 'f1:height', 180
https://img-blog.csdnimg.cn/f09ade92ec0c42e68eaefd317ec7f5b1.png
修改一个数据再次检察版本:
put 'student', 'row1', 'f1:name', 'julein'
get 'student','row1',{COLUMN => 'f1:name',VERSIONS => 2}
https://img-blog.csdnimg.cn/2a5dcb34e5e64240a9491f7fa35d1820.png
删除行数据:deleteall
删除行数据:deleteall 't1','row1'
只剩下row2数据
https://img-blog.csdnimg.cn/fa2115c4160d4c9e8244d5d3a7f45c62.png
删除一个单位格数据:delete
delete 't1','row2','f1:name'
删除后:
https://img-blog.csdnimg.cn/0e91e87ff48c4f599a6f361c79e0fab2.png
删除表:disable+drop
disable 't1'
drop 't1'
t1被删除了
https://img-blog.csdnimg.cn/c17d99f1a65f49019dda29a964b6ca19.png
一个简朴的shell操纵完成。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 【云盘算】HBase表操纵