HBase客户端
[root@localhost hbase]# bin/hbase shell
HBase Shell
Use "help" to get list of supported commands.
Use "exit" to quit this interactive shell.
Version 1.4.10, r76ab087819fe82ccf6f531096e18ad1bed079651, Wed Jun 5 16:48:11 PDT 2019
hbase(main):001:0>
namespace操作
HBase系统默认定义了两个缺省地namespace
hbase:系统内建表,包括namespace和meta表
default:用户建表时未指定namespace的表都创建在此
# 创建namespace
create_namespace 'test'
# 删除namespace
drop_namespace 'test'
# 查看namespace
describe_namespace 'test'
# 列出所有namespace
list_namespace
# 在namespace下创建表
create 'test:uesr_info','name','age'
# 查看namespaec下的表
list_namespace_tables 'test'
HBase表模型特点
- 一个表,有表名
- 一个表可以分为多个列族(不同列族的数据会存储在不同文件中)
- 表中的每一行有一个“行键 rowkey”,而且行键在表中不能重复
- 表中的每一对 kv 数据称作一个 cell
- hbase 可以对数据存储多个历史版本(历史版本数量可配置)
- 整张表由于数据量过大,会被横向切分成若干个 region(用 rowkey 范围标识),不同region的数据也存储在不同文件中
- hbase 会对插入的数据按顺序存储:
要点一:首先会按行键排序
要点二:同一行里面的 kv 会按列族排序,再按 k 排序
HBase数据模型
HBase中只支持byte[]
此处的 byte[] 包括了:rowkey,key,value,列族名,表名
基本操作命令
名称 | 表达式 |
---|---|
创建表 | create ‘表名’,‘列族名1’,‘列族名2’,‘列族名N’ |
查看所有表 | list |
描述表 | describe ‘tablename’ |
判断表是否存在 | exists ‘tablename’ |
判断表是否被禁用 | is_enabled ‘tablename’ is_disabled ‘tablename’ |
添加记录 | put ‘tablename’,‘rowkey’,‘列族:列’,‘value’ |
查看记录rowkey下的所有数据 | get ‘tablename’,‘rowkey’ |
查看表中的记录总数 | count ‘tablename’ |
获取某个列族 | get ‘tablename’,‘rowkey’,‘列族’ |
获取某个列族的某个列 | get ‘tablename’,‘rowkey’,‘列族:列’ |
删除记录 | delete ‘tablename’,‘rowkey’,‘列族:列’ |
删除整行 | deleteall ‘tablename’,‘rowkey’ |
删除表 | 先要屏蔽该表,才能对表进行删除 第一步:disable ‘tablename’ 第二步:drop ‘tablename’ |
清空表 | truncate ‘tablename’ |
查看所有记录 | scan ‘tablename’ |
查看某个表某个列所有数据 |