HBase Shell 操作

简介: HBase Shell 操作

1、基本操作

1.1、进入HBase客户端命令行

前提是先启动hadoop集群和zookeeper集群。

bin/hbase shell

1.2、查看帮助命令

help


help 查看指定命令的语法规则

查看 list_namespace 的用法(‘记得加单引号’)

help 'list_namespace'


2、namespace

我们首先查看现在有哪些命名空间 ,使用指令:list_namespace

注意:我的hadoop版本3.3.0,HBase2.4.17,两者兼容性有问题,我们直接使用上面的命令会报错,需要做两点:

1. 确保 hadoop 退出安全模式

hadoop dfsadmin -safemode leave

2. 在hbase-site.xml 中添加下面的配置

<property>
    <name>hbase.wal.provider</name>
    <value>filesystem</value>
</property>

执行语句 list_namespace

2.1、创建命名空间

通过 help 查看创建命名空间的用法:

我们可以看到,我们可以通过两种方式创建 namespace。

创建命名空间 bigdata

3、DDL

3.1、查看表格

list

3.2、创建表格

案例1

在我们的命名空间 bigdata 下创建一个表格 student 并指定两个列族 info 和 msg

如果不指定命名空间的话也可以,这时候使用的是HBase默认的 default 命名空间。

不指定版本空间的话默认版本空间是1,后续可以修改。

create 'bigdata:student','info','msg'

去web端查看:

案例2

同样在命名空间 bigdata 下再创建一个表 person ,指定两个列族 info 和 msg 并指定保留5个历史版本。

每次修改都会将新值追加到版本列表中,同时删除旧版本,以保持每个单元格的版本数不超过创建时指定的值。

create 'bigdata:person',{NAME => 'info',VERSIONS => 5},{NAME => 'msg',VERSIONS => 5}

3.3、查看表的详细信息

describe '命名空间:表名'

3.4、修改表

我们在创建表的时候指定的所有列族相关的信息,都可以后续通过 alter 进行修改,包括增加删除列族,这也是为什么说 HBase 是稀疏的,因为这些列族都是可以后续我们一直增加修改的,包括列族下的列,我们到现在还没有创建真正的列,需要的时候再去创建。

3.4.1、增加列族和修改列族

修改列族版本空间

alter 'bigdata:student',NAME => 'info',VERSIONS => 5

增加列族 'info1'

alter 'bigdata:student',NAME => 'info1',VERSIONS => 5
3.4.2、删除列族

两种删除方法:

alter '命名空间:表名',NAME => '列族',METHOD => 'delete'


或者

alter '命名空间:表名','delete' => '列族'

命名空间为 default 命名空间可以省去不写,下面都是如此。

3.5、删除表

HBase中删除表格时必须先标记为 Disable 不可用的,才能再删除。

3.5.1、disable
disable '命名空间:表名'
3.5.2、drop
drop '命名空间:表名'

4、DML

4.1、写入数据

       HBase中写入的数据只能是结构中最底层的 cell (由{rowkey, column Family : column Qualifier, timestamp} 唯一确定的单元)。

学会多用 help 去查看用法:


语法:

put '命名空间:表名','行号','列族:列名','值'

       其中的行号和列名都是新增数据的时候才增加的,我们在创建表的时候并不需要定义,再次体现了NoSQL数据库的稀疏性。

4.2、读取数据

4.2.1、get

读取某一行的数据

get '命名空间:表名','行号'

也可以进行列的过滤:

get '命名空间:表名','行号',{COLUMN => '列族:列名'}

限定多列:

get '命名空间:表名','行号',{COLUMN => ['列族:列名','列族:列名','列族:列名'...]}

读取多个版本:比如读取6个版本的历史数据(注意:我们读取到的版本数不会操作它维护的版本数,即我们定义时设置的版本数)

get '命名空间:表名','行号',{COLUMN => '列族:列名',VERSIONS => 6}

4.2.2、scan
扫描整张表

get 只能读取一行数据,我们希望读取多行数据的话就要使用scan了,scan的时候默认读取的是我们最新的版本。

scan '命名空间:表名'

扫描指定范围

通过指定开始和结束行号来输出指定范围的数据,所以说在HBase中,行号的设计很重要。

注意:STARTROW  到 STOPROW 是左闭右开的

scan '命名空间:表名',{STARTROW => '行号',STOPROW => '行号'}

4.3、删除数据

删除数据有两个方法:delete deleteall ,前者是删除一个版本的数据,后者是删除所有版本的数据。

4.3.1、delete

delete 默认删除最新的一个版本。

delete '命名空间:表名','列族:列名'
4.3.2、deleteall
deleteall '命名空间:表名','列族:列名'



相关实践学习
lindorm多模间数据无缝流转
展现了Lindorm多模融合能力——用kafka API写入,无缝流转在各引擎内进行数据存储和计算的实验。
云数据库HBase版使用教程
&nbsp; 相关的阿里云产品:云数据库 HBase 版 面向大数据领域的一站式NoSQL服务,100%兼容开源HBase并深度扩展,支持海量数据下的实时存储、高并发吞吐、轻SQL分析、全文检索、时序时空查询等能力,是风控、推荐、广告、物联网、车联网、Feeds流、数据大屏等场景首选数据库,是为淘宝、支付宝、菜鸟等众多阿里核心业务提供关键支撑的数据库。 了解产品详情:&nbsp;https://cn.aliyun.com/product/hbase &nbsp; ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库&nbsp;ECS 实例和一台目标数据库&nbsp;RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&amp;RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
10天前
|
缓存 监控 Shell
如何使用 HBase Shell 进行数据的实时监控和备份?
如何使用 HBase Shell 进行数据的实时监控和备份?
|
10天前
|
Shell 分布式数据库 Hbase
如何使用 HBase Shell 进行数据的批量导入和导出?
如何使用 HBase Shell 进行数据的批量导入和导出?
|
1月前
|
分布式计算 Hadoop Shell
Hadoop-35 HBase 集群配置和启动 3节点云服务器 集群效果测试 Shell测试
Hadoop-35 HBase 集群配置和启动 3节点云服务器 集群效果测试 Shell测试
69 4
|
1月前
|
分布式计算 Hadoop Shell
Hadoop-36 HBase 3节点云服务器集群 HBase Shell 增删改查 全程多图详细 列族 row key value filter
Hadoop-36 HBase 3节点云服务器集群 HBase Shell 增删改查 全程多图详细 列族 row key value filter
57 3
|
3月前
|
Shell 分布式数据库 Ruby
HBase常用shell操作(未完成)
HBase常用shell操作(未完成)
63 1
|
4月前
|
存储 Shell 分布式数据库
Hbase 的基本shell 命令
Hbase 的基本shell 命令
238 8
|
3月前
|
存储 Shell 分布式数据库
Hbase 的基本shell 命令
Hbase 的基本shell 命令
|
存储 Java Shell
分布式数据库HBase的常用操作的基本Shell命令的增/删/改/查
HBase是一个分布式数据库系统,支持高性能、可伸缩、实时的数据存储和处理。在HBase中,我们可以使用Shell命令来进行常用的操作,如创建表、插入数据、查询数据、更新数据等。本文将介绍关于分布式数据库HBase的常用操作基本Shell命令的增删改查。
949 0
|
存储 Java Shell
分布式数据库HBase的常用操作的基本Shell命令的表操作
HBase是一个分布式数据库系统,支持高性能、可伸缩、实时的数据存储和处理。在HBase中,我们可以使用Shell命令来进行常用的操作,如创建表、插入数据、查询数据、更新数据等。本文将介绍关于分布式数据库HBase的常用操作基本Shell命令的表操作。
255 0
|
存储 Java Shell
分布式数据库HBase的常用操作的基本Shell命令的状态/版本/Help命令
HBase是一个分布式数据库系统,支持高性能、可伸缩、实时的数据存储和处理。在HBase中,我们可以使用Shell命令来进行常用的操作,如创建表、插入数据、查询数据、更新数据等。本文将介绍关于分布式数据库HBase的常用操作基本Shell命令的状态/版本/Help命令。
462 0