HBase Shell命令
一、 命名空间
命名空间是 HBase 中用于组织表的一种逻辑容器,类似于文件系统中的文件夹。
Namespace允许用户在 HBase 中更好地管理和组织表,以及提供了隔离和命名约定。
1. 创建命名空间
命令:
create_namespace 'namespace_name'
示例:
2. 查看命名空间
命令:
list_namespace
list_namespace 命令用于列出所有已创建的命名空间。
示例:
3. 查看命名空间下的表
命令:
list_namespace_tables 'namespace_name'
4. 删除命名空间
命令:
drop_namespace 'namespace_name'
详细说明:
drop_namespace 命令用于删除指定的命名空间及其所有的表。
删除命名空间也会同时删除该命名空间下的所有表。哈哈 这个就不演示啦!
二、DDL
创建表命令详解
在 HBase 中创建表时,可以选择指定命名空间,也可以在不指定命名空间的情况下创建表。
1. 不指定命名空间创建表
如果不指定命名空间,则表会被创建在默认命名空间(通常是 default
)下。
命令格式:
create 'table_name', 'column_family1', 'column_family2', ...
详细说明:
table_name
是要创建的表的名称。column_family1
,column_family2
, … 是该表的列族(column family)列表。在 HBase 中,数据按照列族存储,每个列族可以包含多个列限定符(column qualifier)。
示例:
create 'mytable', 'cf1', 'cf2'
创建一个名为 mytable
的表,包含两个列族 cf1
和 cf2
,并将其放在默认命名空间下。
2. 指定命名空间创建表
如果希望将表放置在特定的命名空间下,可以在表名前加上命名空间的前缀。
命令格式:
create 'namespace_name:table_name', 'column_family1', 'column_family2', ...
详细说明:
namespace_name
是要创建表的命名空间的名称。table_name
是要创建的表的名称。column_family1
,column_family2
, … 是表的列族列表。
示例:
查看表
- 查看表有两个命令:list 和 describe
修改表
表名创建时写的所有和列族相关的信息,都可以后续通过 alter 修改,包括增加删除列族。
删除表
三、DML
写数据
1. 插入数据
HBase 中插入数据使用 put
命令。
语法格式:
put 'table_name', 'row_key', 'column_family:column_qualifier', 'value'
table_name
: 要插入数据的表名。row_key
: 数据行的键值。column_family:column_qualifier
: 列族和列限定符的组合,用冒号分隔。value
: 要插入的数据值。
读数据
2. 获取数据
get 'table_name', 'row_key'
table_name
: 要获取数据的表名。row_key
: 要获取数据的行键。
3. 扫描数据
scan 'table_name'
table_name
: 要扫描的表名。
Tips:
- 时间戳(Timestamp): 在
put
和delete
命令中,可以使用时间戳来指定数据的版本。 - 过滤器(Filters):
scan
命令支持使用过滤器来过滤和限制返回的数据。
删数据
4. 删除数据
delete 'table_name', 'row_key', 'column_family:column_qualifier', timestamp
详细说明:
table_name
: 要删除数据的表名。row_key
: 要删除数据的行键。column_family:column_qualifier
: 要删除的列族和列限定符。timestamp
: 可选项,指定要删除的特定版本的时间戳。
delete 'users', 'user1', 'info:name'
删除 users
表中行键为 user1
的 info
列族下的 name
列的所有版本数据。