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 (ie 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 course level of isolation.
A namespace can be created, removed or altered. Namespace membership is determined during table creation by specifying a fully-qualified table name of the form:
<table namespace>:<table qualifier>
Example 5.1. Examples
#Create a namespace create_namespace 'my_ns'
#create my_table in my_ns namespace create 'my_ns:my_table', 'fam'
#drop namespace drop_namespace 'my_ns'
#alter namespace alter_namespace 'my_ns', {METHOD => 'set', 'PROPERTY_NAME' => 'PROPERTY_VALUE'}
There are two predefined special namespaces:
hbase - system namespace, used to contain hbase internal tables
default - tables with no explicit specified namespace will automatically fall into this namespace.
Example 5.2. Examples
#namespace=foo and table qualifier=bar create 'foo:bar', 'fam' #namespace=default and table qualifier=bar create 'bar', 'fam'