1.声明
当前内容主要用于本人学习和复习,当前内容为HBase中的namespace的使用
2.Namespace
A namespace is a logical grouping of tables analogous to a database in relation database systems. This abstraction lays the groundwork for upcoming multi-tenancy related features:
-
Quota Management (HBASE-8410) - Restrict the amount of resources (i.e. regions, tables) a namespace can consume.
-
Namespace Security Administration (HBASE-9206) - Provide another level of security administration for tenants.
-
Region server groups (HBASE-6721) - A namespace/table can be pinned onto a subset of RegionServers thus guaranteeing a coarse level of isolation.
namespace是表的逻辑分组
,类似于关系型数据库中的数据库概念
。此抽象为即将推出的多租户相关功能奠定了基础:
- 配额管理(HBASE-8410)-
限制命名空间可以使用的资源量(即区域、表)
。 - 命名空间安全管理(HBASE-9206)-
为租户提供另一级别的安全管理
。 - 区域服务器组(HBASE-6721)-
可以将命名空间/表固定到区域服务器的子集上,从而保证粗略的隔离级别
3.查看Namespace的命令
- 修改命名空间,添加/修改/删除一个属性:
alter_namespace
- 创建命名空间:
create_namespace
- 查看这个命名空间详情:
describe_namespace
- 删除命名空间:
drop_namespace
- 查看所有的命名空间:
list_namespace
- 列出某个命名空间中所有的表:
list_namespace_tables
4.测试当前的命令
1.创建命名空间test
create_namespace 'test'
2.查看所有的命名空间
list_namespace
3.修改当前命名空间的属性
alter_namespace 'test', {METHOD => 'set', 'PROPERTY_NAME' => 'PROPERTY_VALUE'}
4.查看这个命名空间详情
describe_namespace 'test'
5.列出default空间中的表
list_namespace_tables 'default'
6.删除命名空间test
drop_namespace 'test'
7.创建表时声明命名空间
create_namespace 'test'
create 'test:mytable','cf1'
5.总结
1.创建表的时候默认采用的就是default命名空间,可以在创建表时指定命名空间(该明命名空间必须存在)
2.命名空间类似关系型数据库中的数据库的概念
以上纯属个人见解,如有问题请联系本人!