HBase常用命令(超全超详细)

目录

连接HBase

连接HBase并查看版本

帮助命令

查看服务器状态

查看当前数据库中有哪些表

命名空间

列出所有命名空间

新建命名空间

删除命名空间

修改命名空间

创建表

列举表

表结构

查询表

添加数据

更新数据

检查插入情况.

表扫描

按照条件查询 

获取某一行

统计表数据行数

删除数据

禁用表

 禁用表

清空表

启用表

 启用表

变更表信息

添加列簇

删除列簇 

 修改版本信息

删除表

用户权限

退出


 

5eb19a777a14463f91ee303de6bb6a31.png

文档: https://hbase.apache.org/book.html#getting_started

本节我们将向您展示如何使用 hbase shell CLI 在 HBase 中创建表、在表中插入行、对表执行放置和扫描操作、启用或禁用表以及启动和停止 HBase。

主要讲述了HBase的CRUD等基本DDL和DML操作。

注意:HBase Shell 中的删除键没用,要用【Ctrl+Backspace】,每个命令之后不需要分号(;)结束。

连接HBase

连接HBase并查看版本

$ ./bin/hbase shell
HBase Shell; enter 'help<RETURN>' for list of supported commands.
Type "exit<RETURN>" to leave the HBase Shell
Version: 0.90.0, r1001068, Fri Sep 24 13:55:42 PDT 2010

hbase(main):001:0> version

帮助命令

所有的帮助

hbase(main):001:0> help

指定命令的帮助

hbase(main):001:0> help 'create'

输入 help 然后 <RETURN> 可以看到一列shell命令。这里的帮助很详细,要注意的是表名,行和列需要加引号。

查看服务器状态

  hbase(main):001:0> status

查看当前数据库中有哪些表

hbase(main):002:0> list

命名空间

列出所有命名空间

hbase(main):002:0> list_namespace

新建命名空间

hbase(main):002:0> create_namespace 'ns1'

删除命名空间

hbase(main):002:0> drop_namespace 'ns1'

该命名空间必须为空,否则系统不让删除。

修改命名空间

hbase> alter_namespace 'ns', {METHOD => 'set', 'PROPERTY_NAME' => 'PROPERTY_VALUE'}

创建表

创建一个名为 test 的表,这个表只有一个 列族 为 cf。可以列出所有的表来检查创建情况,然后插入些值。

hbase(main):003:0> create 'test', 'cf'
0 row(s) in 1.2200 seconds
hbase(main):003:0> list 'table'
test
1 row(s) in 0.0550 seconds
hbase(main):004:0> put 'test', 'row1', 'cf:a', 'value1'
0 row(s) in 0.0560 seconds
hbase(main):005:0> put 'test', 'row2', 'cf:b', 'value2'
0 row(s) in 0.0370 seconds
hbase(main):006:0> put 'test', 'row3', 'cf:c', 'value3'
0 row(s) in 0.0450 seconds

以上我们分别插入了3行。第一个行key为row1, 列为 cf:a, 值是 value1。HBase中的列是由 列族前缀和列的名字组成的,以冒号间隔。例如这一行的列名就是a.

列举表

列出指定命名空间下的所有表

hbase> list_namespace_tables 'ns1'

列出所有表

hbase> list

 

表结构

查看表里面有哪些字段。

hbase(main):003:0> describe 'test'
Table test is ENABLED
test
COLUMN FAMILIES DESCRIPTION
{NAME => 'cf', VERSIONS => '1', EVICT_BLOCKS_ON_CLOSE => 'false', NEW_VERSION_BEHAVIOR => 'false', KEEP_DELETED_CELLS => 'FALSE', CACHE_DATA_ON_WRITE =>
'false', DATA_BLOCK_ENCODING => 'NONE', TTL => 'FOREVER', MIN_VERSIONS => '0', REPLICATION_SCOPE => '0', BLOOMFILTER => 'ROW', CACHE_INDEX_ON_WRITE => 'f
alse', IN_MEMORY => 'false', CACHE_BLOOMS_ON_WRITE => 'false', PREFETCH_BLOCKS_ON_OPEN => 'false', COMPRESSION => 'NONE', BLOCKCACHE => 'true', BLOCKSIZE
 => '65536'}
1 row(s)
Took 0.9998 seconds

查询表

查询表是否存在

语法:exists ‘table_name’

hbase(main):005:0> exists 'test'

添加数据

hbase(main):003:0> put 'test', 'row1', 'cf:a', 'value1'
0 row(s) in 0.0850 seconds

hbase(main):004:0> put 'test', 'row2', 'cf:b', 'value2'
0 row(s) in 0.0110 seconds

hbase(main):005:0> put 'test', 'row3', 'cf:c', 'value3'
0 row(s) in 0.0100 seconds

更新数据

hbase(main):005:0> put 'test', 'row3', 'cf:c', 'value4'
0 row(s) in 0.0100 seconds

表查询

语法:scan ‘table_name’,{COLUMNS => [ ‘column_family:column’,… ], LIMIT => num}

全表Scan操作如下:

hbase(main):007:0> scan 'test'
ROW        COLUMN+CELL
row1       column=cf:a, timestamp=1288380727188, value=value1
row2       column=cf:b, timestamp=1288380738440, value=value2
row3       column=cf:c, timestamp=1288380747365, value=value3
3 row(s) in 0.0590 seconds

 扫描表scan,cf:a的前2条数据

  hbase(main):004:0> scan 'test',{COLUMNS => 'cf:a',LIMIT => 2}

按照条件查询 

查询前几条数据
scan 'test',{LIMIT=>5}
#查询从指定行到结束行
hbase(main):009:0> scan 'test',{STARTROW => '1001', STOPROW  => '1001'}
#查询从指定行开始五条
hbase(main):010:0> scan 'test',{STARTROW => '1001',LIMIT=>5}

获取某一行

get一行,操作如下

hbase(main):008:0> get 'test', 'row1'
COLUMN      CELL
cf:a        timestamp=1288380727188, value=value1
1 row(s) in 0.0400 seconds

查看“指定行”或“指定列族:列”的数据 

hbase(main):008:0> get 'test', 'row1','cf:a'
COLUMN      CELL
cf:a        timestamp=1288380727188, value=value1
1 row(s) in 0.0400 seconds

通过versions来获取多个版本的数据

hbase(main):019:0> get 'test','1001',{COLUMN=>'cf:a',VERSIONS => 2}

统计表数据行数

hbase(main):021:0> count 'test'

删除数据

  •         删除某rowkey的全部数据:
hbase(main):016:0> deleteall 'test','1001'
  •         删除某rowkey的某一列数据: 
hbase(main):008:0> delete 'test', 'row1','cf:a'

禁用表

判断表是否禁用

语法:is_disabled ‘table_name’

示例:判断test表是否禁用

  hbase(main):026:0> is_disabled 'test'

 禁用表

hbase(main):012:0> disable 'test'
0 row(s) in 1.0930 seconds

清空表

hbase(main):018:0> truncate 'test'
提示:清空表的操作顺序为先disable,然后再truncate。

启用表

判断表是否启用

语法:is_enabled ‘table_name’
示例:判断test表是否启用

  hbase(main):005:0> is_enabled 'test'

 启用表

hbase(main):009:0> enable 'test'
0 row(s) in 0.1770 seconds

变更表信息

添加列簇

命令格式:alter ‘表名’,‘列簇名’

alter 'test','cf1'

删除列簇 

语法:alter ‘table_name’, {NAME => ‘column_family1’, METHOD => ‘delete’}
示例:将表test中的列簇cf删除

  hbase(main):016:0> alter 'test',{NAME => 'cf',METHOD => 'delete'}

 修改版本信息

将cf列族中的数据存放3个版本:

hbase(main):022:0> alter 'test',{NAME=>'cf',VERSIONS=>3}
 
hbase(main):022:0> get 'test','1001',{COLUMN=>'cf:a',VERSIONS=>3}

查看是否处理成功:

  hbase(main):017:0> describe 'test'

删除表

disable 再 drop 这张表,可以清除你刚刚的操作

hbase(main):013:0> drop 'test'
0 row(s) in 0.0770 seconds 

用户权限

user_permission ['表名'..]
grant '用户名' ,'RWXCA'
R - represents read privilege.
W - represents write privilege.
X - represents execute privilege.
C - represents create privilege.
A - represents admin privilege.

退出Shell

hbase(main):014:0> exit

 

 

  • 18
    点赞
  • 99
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
HBase是一个基于Hadoop的分布式数据库,常用于存储大数据量及高并发的应用场景。下面是HBase常用命令及使用方法的简要介绍: 1. 创建表:create 'table_name', 'column_family' 创建一个名为table_name的表,指定列族为column_family。 2. 查看表:list 列出所有已创建的表。 3. 插入数据:put 'table_name', 'row_key', 'column_family:column', 'value' 插入数据到指定的表和行,指定列族、列和值。 4. 获取单行数据:get 'table_name', 'row_key' 获取指定表和行的数据。 5. 获取整表数据:scan 'table_name' 扫描并获取整张表的数据。 6. 删除数据:delete 'table_name', 'row_key', 'column_family:column' 删除指定表、行、列族下的数据。 7. 删除表:disable 'table_name' drop 'table_name' 禁用并删除指定的表。 8. 增加、修改列族:alter 'table_name', {NAME => 'column_family', VERSIONS => 'n'} 增加或修改指定表的列族,指定VERSIONS参数可以设置列的版本数量。 9. 启用或禁用表:enable 'table_name' disable 'table_name' 启用或禁用指定的表。 10. 设置表的最大版本数:alter 'table_name', {NAME => 'column_family', VERSIONS => 'n'} 设置指定表的列族的最大版本数。 11. 备份和恢复数据:snapshot 'snapshot_name', 'table_name' restore 'snapshot_name' 创建指定表的快照,并可以使用快照进行数据恢复。 通过使用这些常用命令,可以方便地管理HBase数据库,并进行数据的增删改查操作。需要注意的是,HBase是一个分布式数据库,涉及到多个节点的数据存储和处理,因此在进行操作时需要考虑数据一致性和分布式处理的特点。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

未来在这儿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值