Hbase表空間簡介


1、介紹

Hbase中命名空間類似於傳統數據庫RDBMS中的:庫,方便對表進行業務上的划分。在hbase從0.98.0,0.95.2開始支持namespace級別的授權操作。hbase的全局管理員可以進行namespace的授權操作(創建、修改和回收)。 

2namespace

HBase系統默認定義了兩個命名空間

hbase:系統內建表,包括namespace和meta表

default:用戶建表時未指定namespace的表都創建在此

 

3、namespace的基本操作,

  操作思路類似於操作傳統數據庫

 

3.1:創建namespace:

  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   

 

4、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   **/
View Code

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM