Chinaunix首页 | 论坛 | 博客
  • 博客访问: 420608
  • 博文数量: 62
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 740
  • 用 户 组: 普通用户
  • 注册时间: 2015-05-10 21:59
个人简介

付出,终有回报!

文章分类

全部博文(62)

文章存档

2018年(6)

2017年(24)

2016年(6)

2015年(26)

分类: HADOOP

2017-02-24 13:50:46


二、物理视图

尽管概念层面的表可能被看成行的稀疏集合,他们是通过列簇物理地存储。一个新的列修饰符(列簇:列修饰符)可以在任何时候被加入到一个已存在的列簇当中。

表5. 列簇 anchor

Row Key Time Stamp Column Family anchor
"com.cnn.www" t9 anchor:cnnsi.com="CNN"
"com.cnn.www" t8 anchor:my.look.ca="CNN.com"

表6. 列簇 contents

Row Key Time Stamp Column Family anchor
"com.cnn.www" t6 contents:html="
..."
"com.cnn.www" t5 contents:html="
..."
"com.cnn.www" t3 contents:html="
..."

在概念视图中看到的空单元格(cell)没有被存储。因此,一个对列contents:html,时间戳为t8的值的请求将检索不到任何值。同样,一个对列anchor:my.look.ca,时间戳为t9的请求也不会有值返回。然后,如果没有提供时间戳,将返回指定列的最新的值。给出多个版本,也是最近的最先找到,因为时间戳是倒序存储的。因此,如果对行com.cnn.www所有列的值进行请求,如果没有指定时间戳,则请求的值为:时间戳为t6,列为contents:html的值,时间戳为t9,列为anchor:cnnsi.com的值,时间戳为t8,列为anchor:my.look.ca的值。(t5,t3没有返回,是因为返回了最近的t6)。


三、命名空间

一个命名空间是一个表的逻辑分组,类似于关系型数据庫系统里的数据庫。

  • 配额管理() - 对一个命名空间使用资源的约束

  • 命名空间安全管理   -   为租户提供另一个层面的安全管理

  • 区域服务组   -   一个namespace/table可以固定到regionServer的一个子集,从而保证一定程度的隔离性。


1.命名空间管理

命名空间可以被创建,删除和修改。命名空间成员是由在创建时指定一个全限定符表名所决定:

例子12. #创建一个命名空间my_ns

create_namespace 'my_ns'

#在命名空间my_ns里创建my_table
create 'my_ns:my_table', 'fam'

#drop namespace
drop_namespace 'my_ns'

#alter namespace
alter_namespace 'my_ns', {METHOD => 'set', 'PROPERTY_NAME' => 'PROPERTY_VALUE'}

2.预定义的命名空间

有两个预定义的命名空间:
hbase - 系统命名空间,用于包含HBase的内部表
default - 没有指定命名空间的表,将自动使用此命名空间

例子13.
#namespace=foo and table qualifier=bar
#可以理解为foo为数据庫,bar为表,fam为表bar的列簇

create 'foo:bar', 'fam'

#namespace=default and table qualifier=bar
create 'bar', 'fam'

阅读(1260) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~