Hbase Shell 常见命令的使用

本文介绍了HBase数据库的基本操作,包括表的创建、数据的增删改查等关键功能。涵盖了建表、添加数据、扫描表、获取数据、删除数据、修改表结构以及删除表的全过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、建表:create

在创建表时,行建不用也不能预先定义,而对表数据进行操作时必须指定行建,即行建在添加数据时首次被确定,并且“时间戳”列也由HBase自动生成,所以只需指定列族即可
create 命令的语法格式:
create ‘表名称’,‘列名称1’,‘列名称2’,…
其中表名和列名必须用单引号括起来并用逗号隔开。
【示例】
创建一个表,表名为score,列族为grade和course。

create 'score','grade','course'

在创建表时,除了列族名称,列族的参数均为可选项,上面创建表的语句为简化方式,完整的写法如下:

create 'score',{NAME=>'grade',VERSIONS=>5},{NAME=>'course',VERSIONS=>5}

此命令指定了列族名称及可保存的单元时间版本最大量。指定列族参数的格式为:参数名 => 参数值,注意赋值符号为“ =>”且参数名必须大写。如果指定多个参数,应以逗号分开,最后所有参数以“{}”括起来表示一个列族。

二、查看所有表

使用 list 命令可以查看当前 HBase 数据库中的所有表,具体操作如下:

list

在这里插入图片描述
可以看到当前数据库中已经存在“score”表。如果要查看该表的所以列族的详细描述信息可以使用 describe 指令

describe score

三、添加数据:put

向 score 中添加一些数据,使用 put 命令可向表中插入数据,语法格式如下。
put ‘表名称’,‘行键’,‘列键’,‘值’
【示例】
批量向score表中插入数据

put 'score','tom','grade:','1'
put 'score','tom','course:art','80'
put 'score','tom','course:math','89'
put 'score','json','grade:','2'
put 'score','tom','course:art','87'
put 'score','tom','course:math','90'

四、扫描表

scan 用于全表单元扫描。语法格式如下:
score ‘表名’,{COLUMNS=>[‘列族名1’,‘列族名2’…],参数名:参数值…}
大括号内的内容为扫描条件,如不指定则查询所有数据
【示例1】
全表扫描

scan 'score'

在这里插入图片描述
注意一下,这里的输出提示显示的两行数据,因为在scan的结果中,将相同行键的所有单元视为一行。
【示例2】
指定 rowkey 范围查询

scan 'score',{'STARTROW'=>'j','STOPROW'=>'t'}

在这里插入图片描述
【示例3】
指定某个列族查询

scan 'score',{COLUMNS=>'course'}

在这里插入图片描述
【示例4】
指定具体的列键来扫描

scan 'score',{COLUMNS=>'course:math'}

在这里插入图片描述

五、获取数据

get 用于获取行的所有单元或者某个指定的单元。语法结构如下:
get ‘表名称’,‘行键’,{COLUMNS=>[‘列族名1’,‘列族名2’…],参数名:参数值…}
get ‘表名称’,‘行键’,{COLUMNS=>[‘列键1’,‘列键2’…],参数名:参数值…}
与scan相比多一个行键参数。scan 查找的目标是全表的某个列族、列键,而 get 查找的目标是某行的某个列族、列键。
【示例1】
查找行键为 ‘json’ 的所有单元

get 'score','json'

在这里插入图片描述
【示例2】
精确查找行键为 ‘json’,列键为 ‘course:math’ 的单元

get 'score','json',{COLUMNS=>'course:math'}

在这里插入图片描述
提示:

get 'score','json',{COLUMNS=>'course'} 等价于 get 'score','json','course'
get 'score','json',{COLUMNS=>'course:math'} 等价于 get 'score','json','course:math'

六、删除数据

语法如下:
delete ‘表名称’,‘行键’,‘列键’
delete ‘表名称’,‘行键’
delete 只能删除一个单元,而deleteall能删除一行。
【示例1】
删除 score 表中行键为 ‘json’ ,列键为 ‘course:art’ 的单元

delete 'score','json','course:art'

【示例2】
删除一行

delete 'score','json'

七、修改表

使用 alter 可为表增加或修改列族。语法如下:
alter ‘表名’,参数名=>参数值…
其中列族名参数NAME必须提供,如果已存在则修改,否则会增加一个列族。
【示例1】
将score表的列族“course”的"VERSIONS"参数修改为5。

alter 'score',NAME=>'course',VERSIONS=>'5'

在这里插入图片描述【示例2】
将score表的两个列族“course”的"VERSIONS"参数修改为5。

alter 'score',{NAME=>'grade',VERSIONS=>'5'},{NAME=>'course',VERSIONS=>'5'}

在这里插入图片描述【示例3】
删除一个列族数据

alter 'score','delete'=>'grade'

在这里插入图片描述

八、删除表

通过 describe 命令可以发现,HBase 表分为两种状态:enabled和disabled,分别表示是否可用。表默认为 enabled 状态,此状态下不可进行删除表操作,所以要先把表置为 disabled 状态,才能对表进行删除操作。
【示例】

disable 'score'
drop 'score'

在这里插入图片描述

### HBase Shell 常用命令使用方法 #### 打开 HBase Shell 要进入 HBase 的交互环境,可以执行如下命令: ```bash hbase shell ``` #### 获取帮助信息 获取所有可用命令的帮助信息可以通过 `help` 实现;如果想要了解某个特定命令的具体参数,则可以在单引号内指定该命令名称,例如查询 `status` 命令信息可输入 `help 'status'`[^2]。 #### 查看服务器状态与版本信息 为了确认集群运行状况以及所使用的软件版本,分别有两条简单的指令用于此目的: - **查看服务状态** 使用 `status` 可以获得当前 HBase 集群的状态概览。 - **查看版本信息** 输入 `version` 来显示正在运行的 HBase 版本详情。 #### 操作相关命令 ##### 出所有的 通过 `list` 命令能够展示数据库中存在的全部[^3]。 ##### 创建新 创建一张名为 `my_table` 并带有两个(column family),分别为 `cf1` 和 `cf2` 的结构定义如下所示: ```ruby create 'my_table', {NAME=>'cf1'}, {NAME=>'cf2'} ``` 这里还可以设置其他属性比如最大版本数等选项。例如设定每个最多保存五个版本的数据记录: ```ruby create 'my_table',{NAME=>'cf1', VERSIONS=>5}, {NAME=>'cf2', VERSIONS=>5} ``` 上述语句中的 `{NAME=>'cf1', VERSIONS=>5}` 定义了一个叫作 cf1 的并指定了它的版本数量上限为五条历史数据。 ##### 删除和清空 当需要删除某张之前必须先将其禁用(`disable`),之后才能真正移除它(drop),而所谓的 truncate 功能实际上就是先 disable 掉再 drop 后重新建立相同名字的新来达到清除旧内容的效果[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值