一、基本命令
hbase shell命令 描述
alter 修改列族(column family)模式
count 统计表中行的数量,count ‘表名称’
create create ‘表名称’, ‘列名称1’,‘列名称2’,‘列名称N’
describe 显示表相关的详细信息
delete delete ‘表名’ ,‘行名称’ , ‘列名称’
deleteall 删除指定行的所有元素值
disable 使表无效
drop 先要屏蔽该表,才能对该表进行删除,第一步 disable ‘表名称’ 第二步 drop ‘表名称’
enable 使表有效
exists 测试表是否存在
exit 退出hbase shell
get 查询某行记录,get ‘表名称’, ‘行名称’
incr 增加指定表,行或列的值
list 列出hbase中存在的所有表
put put ‘表名称’, ‘行名称’, ‘列名称:’, ‘值’
tools 列出hbase所支持的工具
scan scan “表名称”,scan “表名称” , [‘列名称:’]
status 返回hbase集群的状态信息
shutdown 关闭hbase集群(与exit不同)
truncate 重新创建指定表
version 返回hbase版本信息
grant 分配权限
help 使用help ‘command_name’获得某一个命令的详细信息
要注意shutdown与exit之间的不同:shutdown表示关闭hbase服务,必须重新启动hbase才可以恢复,exit只是退出hbase shell,退出之后完全可以重新进入。
hbase使用坐标来定位表中的数据,行健是第一个坐标,下一个坐标是列族。
二、数据模型概括
表(table)---------hbase用表来组织数据。表名是字符串(string),由可以在文件系统路径里使用的字符组成。
行(row)---------在表里,数据按行存储。行由行健(rowkey)唯一标识。行健没有数据类型,总是视为字节数组byte[].
列族(column family)-----------行里的数据按照列族分组,列族也影响到hbase数据的物理存放。因此,它们必须事前定义并且不轻易修改。表中每行拥有相同列族,尽管行不需要在每个列族里存储数据。列族名字是字符串,由可以在文件系统路径里使用的字符组成。(HBase建表是可以添加列族,alter ‘t1’, {NAME => ‘f1’, VERSIONS => 5} 把表disable后alter,然后enable)
列限定符(column qualifier)--------列族里的数据通过列限定符或列来定位。列限定符不必事前定义。列限定符不必在不同行之间保持一致,就像行健一样,列限定符没有数据类型,总是视为字节数组byte[].
单元(cell)-------行健,列族和列限定符一起确定一个单元。存储在单元里的数据称为单元值(value),值也没有数据类型,总是视为字节数组byte[].
时间版本(version)--------单元值有时间版本,时间版本用时间戳标识,是一个long。没有指定时间版本时,当前时间戳作为操作的基本。hbase保留单元值时间版本的数量基于列族进行配置。默认数量是3个。
hbase在表里存储数据使用的是四维坐标系统,依次是:行健,列族,列限定符和时间版本。 hbase按照时间戳降序排列各时间版本,其他映射建按照升序排序。