基础命令和SQL操作
原创大约 2 分钟
HBase中的命令分为两类。
基础命令。
SQL
命令。
其中SQL
命令又分为DDL
命令和DML
命令。
基础命令
status
可以查看集群当前的状态。
hbase:001:0> status
1 active master, 0 backup masters, 1 servers, 0 dead, 3.0000 average load
Took 0.0017 seconds
version
查看当前的版本。
hbase:002:0> version
2.4.18, ra1767f4d76859c0068720a6c1e5cb78282ebfe1e
Took 0.0004 seconds
whoami
查看当前的用户。
hbase:003:0> whoami
root (auth:SIMPLE)
groups: root
Took 0.0214 seconds
SQL命令
DDL命令
命令 | 解释 |
---|---|
create | 创建表 |
list | 列出所有的表 |
disable/is_disabled | 禁用表/表是否已被禁用 |
enable/is_enabled | 启用表/表是否已被启用 |
desc/alter | 查看表的详细信息/修改表 |
exists | 表是否存在 |
drop/truncate | 删除表/清空表 |
hbase:004:0> create 'user', 'info', 'level'
hbase:005:0> list
hbase:006:0> disable 'user'
hbase:007:0> is_disabled 'user'
hbase:008:0> enable 'user'
hbase:009:0> is_enabled 'user'
hbase:009:0> desc 'user'
Table user is ENABLED
user
COLUMN FAMILIES DESCRIPTION{NAME => 'info', BLOOMFILTER => 'ROW', IN_MEMORY => 'false', VERSIONS => '1', KEEP_DELETED_CELLS => 'FALSE', DATA_BLOCK_ENCODING => 'NONE', COMPRESSION => 'NONE', TTL => 'FOREVER', MIN_VERSIONS => '0', BLOCKCACHE => 'true', BLOCKSIZE
=> '65536', REPLICATION_SCOPE => '0'}
{NAME => 'level', BLOOMFILTER => 'ROW', IN_MEMORY => 'false', VERSIONS => '1', KEEP_DELETED_CELLS => 'FALSE', DATA_BLOCK_ENCODING => 'NONE', COMPRESSION => 'NONE', TTL => 'FOREVER', MIN_VERSIONS => '0', BLOCKCACHE => 'true', BLOCKSIZ
E => '65536', REPLICATION_SCOPE => '0'}
2 row(s)
Quota is disabled
Took 0.8344 seconds
# 修改列族信息
hbase:010:0> alter 'user', {NAME=>'info', VERSIONS=>'10'}
# 增加列族
hbase:010:0> alter 'user', 'about'
# 删除列族(当表中只剩1个列族时是无法删除的)
hbase:010:0> alter 'user', {NAME=>'about', METHOD=>'delete'}
hbase:011:0> exists 'user'
# 删除表之前需要先disable
hbase:012:0> disable 'test'
hbase:013:0> drop 'test'
hbase:014:0> truncate 'user'
DML命令
命令 | 解释 |
---|---|
put | 添加/修改数据 |
get | 读取数据 |
count | 数据条数 |
scan | 扫描数据,相当于select * 语句,可以增加过滤条件 |
delete/deleteall | 删除数据 |
# 添加和修改数据
hbase:001:0> put 'user', 'lixingyun', 'info:gender', '1'
hbase:001:0> put 'user', 'lixingyun', 'info:age', '22'
hbase:001:0> put 'user', 'lixingyun', 'info:age', '25'
hbase:001:0> put 'user', 'lixingyun', 'level:type', 'normal'
hbase:001:0> put 'user', 'wanglin', 'info:gender', '1'
hbase:001:0> put 'user', 'wanglin', 'info:age', '27'
hbase:001:0> put 'user', 'wanglin', 'level:type', 'vip'
# 读取数据
hbase:001:0> get 'user', 'lixingyun'
hbase:001:0> get 'user', 'lixingyun', 'info'
hbase:001:0> get 'user', 'lixingyun', 'info:age'
hbase:001:0> get 'user', 'wanglin'
# 查询记录条数
hbase:001:0> count 'user'
# 扫描表数据
hbase:001:0> scan 'user'
# 删除数据
hbase:001:0> delete 'user', 'lixingyun', 'info:age'
# 小于时间戳16987的都会被删掉
hbase:001:0> delete 'user', 'lixingyun', 'info:age', 16987
hbase:001:0> delete 'user', 'lixingyun', 'info'
hbase:001:0> deleteall 'user', 'lixingyun'
命名空间
HBase中默认有两个命名空间。
hbase
,存放系统表。default
,存放用户表。
# 查看命名空间
hbase:001:0> list_namespace
# 创建命名空间
hbase:001:0> create_namespace 'newspace'
# 使用命名空间(后续创建表时都会在其中创建)
hbase:001:0> create 'newspace:table1', 'info', 'level'
# 列出所有的表
hbase:001:0> list
# 查看table1表详情
hbase:001:0> desc 'newspace:table1'
# 只查看newspace中的表
hbase:001:0> list_namespace_tables 'newspace'
感谢支持
更多内容,请移步《超级个体》。