1、介紹java
Hbase中命名空間相似於傳統數據庫RDBMS中的:庫,方便對錶進行業務上的劃分。在hbase從0.98.0,0.95.2開始支持namespace級別的受權操做。hbase的全局管理員能夠進行namespace的受權操做(建立、修改和回收)。 shell
2、namespace數據庫
HBase系統默認定義了兩個命名空間apache
hbase:系統內建表,包括namespace和meta表ide
default:用戶建表時未指定namespace的表都建立在此oop
三、namespace的基本操做,ui
操做思路相似於操做傳統數據庫spa
3.1:建立namespace:code
hbase(main):010:0* create_namespace 'tablemamager' 對象
3.2:查看namespace:
hbase(main):011:0> describe_namespace 'tablemamager'
DESCRIPTION
{NAME =>'tablemamager'}
3.3:列出全部namespace:
hbase(main):012:0> list_namespace
NAMESPACE
tablemamager
default
hbase
四、namespace下操做表
4.1:在namespace下建立表:
hbase(main):013:0> create 'tablemamager:idbctable','cf01'
=> Hbase::Table - tablemamager:idbctable
4.1:查看namespace下的表
hbase(main):015:0> list_namespace_tables 'tablemamager'
TABLE
idbctable
4.2:刪除namespace:
#刪除表
hbase(main):017:0> disable 'tablemamager:idbctable'
hbase(main):018:0> drop 'tablemamager:idbctable'
#刪除datamanage命名空間
hbase(main):019:0> drop_namespace 'tablemamager'
1 JAVA API 2 import org.apache.hadoop.conf.Configuration; 3 import org.apache.hadoop.hbase.*; 4 import org.apache.hadoop.hbase.client.Admin; 5 import org.apache.hadoop.hbase.client.Connection; 6 import org.apache.hadoop.hbase.client.ConnectionFactory; 7 import org.apache.hadoop.hbase.util.Bytes; 8 9 import java.io.IOException; 10 11 12 /** 13 * Hbase namespace 14 */ 15 public class NameSpaceInHbase { 16 public static void main(String[] args) throws IOException { 17 18 Configuration conf = HBaseConfiguration.create(); 19 Connection connection = ConnectionFactory.createConnection(conf); 20 //管理員對象 21 Admin admin = connection.getAdmin(); 22 //建立命名空間 23 NamespaceDescriptor namespaceDescriptor = NamespaceDescriptor.create("datastrom3").build(); 24 admin.createNamespace(namespaceDescriptor); 25 //表名 26 TableName tableName = TableName.valueOf("datastrom3","testtable3"); 27 //表描述 28 HTableDescriptor desc = new HTableDescriptor(tableName); 29 //列族描述datastrom 30 HColumnDescriptor coldef = new HColumnDescriptor(Bytes.toBytes("colfam3")); 31 //表加入列族 32 desc.addFamily(coldef); 33 //建立表 34 admin.createTable(desc); 35 //校驗表是否可用 36 boolean avail = admin.isTableAvailable(tableName); 37 System.out.println("Table available: "+avail); 38 } 39 } 40 41 /** 42 preHell: 43 ======== 44 nextShell: 45 hbase(main):005:0> list 46 TABLE 47 testtable2 48 user 49 2 row(s) in 0.0070 seconds 50 51 java output: 52 ===== 53 Table available: true 54 55 shell: 56 ===== 57 hbase(main):022:0> list 58 TABLE 59 datastrom3:testtable3 60 ... 61 **/