Hbase的数据结构
基本要素:命名空间、表、行、列、单元格,region,时间戳。
1.命名空间:NameSpaces的做用
Table:表,全部的表都是命名空间的成员,即表必属于某个命名空间,若是没有指定,则在default默认的命名空间中。
RegionServer group:一个命名空间包含了默认的RegionServer Group。
Permission:权限,命名空间可以定义访问控制列表ACL(Access Control List)。例如,建立表,读取表,删除,更新等等操做。
Quota:限额,能够强制一个命名空间可包含的region的数量。
2.表:概念上能够理解为关系型数据库的表。
3.行:行键rowkey是行的惟一标识元素,表中的数据存储根据行键进行排序,数据的访问也是经过行键进行。
4.列:(列族:列名)表中的每一个列,都归属于某个列族,列族是表的schema的一部分(列不是),必须在使用表以前定义,列名都以列族做为前缀;例如info:name,info:age,info:class都属于info这个列族。
5.单元格: 单元格cell中存放的是不可分割的字节数组,每一个单元格拥有版本信息,插入数据时若没有设置版本,则为默认版本。
6.region:region将表水平划分,是Hbase集群分布数据的最小单位,在线的全部区域就构成了表的内容。
7.时间戳:Hbase 中每一个 cell都保存着同一份数据的多个版本,版本经过时间戳来索引,插入数据时能够设置时间戳的值,若未设置则生成默认时间戳。
Hbase的Shell操做
在任意节点主机上使用hbase shell便可链接到已经启动的Hbase实例:
shell
1 # hbase shell
1 > help
1 > status
1 > version
1 > create 'testtable','infofamily'
1 > list
1 > describe 'testtable'
1 > alter 'testtable',NAME=>'basic'
使用describe命令查看添加列族后的表信息:
使用alter命令删除列族:
数据库
1 > alter 'testtable',NAME=>'basic','METHOD'=>'delete'
使用disable命令能够禁用表,在作删除表或其余的操做时,须要在表禁用的状况下才能进行操做,使用enable命令能够将禁用的表格从新启用:
数组
1 > disable 'testtable'
1 > enable 'testtable'
1 > disable 'testtable' 2 > drop 'testtable'
1 > create 'testtableone','info'
1 > put '表名','行键','列族:列名','VALUE'
1 > put 'testtableone','row1','info:name','Jack'
1 > get 'testtableone','row1'
1 > scan 'testtableone'
1 > delete '表名','行键','列族:列名',时间戳
1 > delete 'testtableone','row1','info:class',1566182654321
1 > delete '表名','行键'
1 > deleteall 'testtableone','row1'
1 > count 'testtableone'