HBase列出表


list 是用來列出HBase中所有表的命令。下面給出了 list 命令的語法。

hbase(main):001:0 > list

當輸入這個命令,並在HBase提示符下執行,它會顯示HBase中的所有表的列表,如下圖所示。

hbase(main):001:0> list
TABLE
emp

在這裡,可以看到一個名為表emp。

使用Java API列出表

按照下面給出的步驟來使用Java API從HBase獲得表的列表。

第1步

在類HBaseAdmin中有一個方法叫 listTables(),列出HBase中所有的表的列表。這個方法返回HTableDescriptor物件的陣列。

//creating a configuration object
Configuration conf = HBaseConfiguration.create();


//Creating HBaseAdmin object
HBaseAdmin admin = new HBaseAdmin(conf);


//Getting all the list of tables using HBaseAdmin object
HTableDescriptor[] tableDescriptor =admin.listTables();

第1步

就可以得到使用HTableDescriptor類長度可變的HTableDescriptor[]陣列的長度。從該物件使用getNameAsString()方法獲得表的名稱。執行'for'迴圈而獲得HBase表的列表。

下面給出的是使用Java API程式列出所有HBase中表的列表。

import java.io.IOException;

import org.apache.hadoop.conf.Configuration;

import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.HTableDescriptor;
import org.apache.hadoop.hbase.MasterNotRunningException;
import org.apache.hadoop.hbase.client.HBaseAdmin;


public class ListTables {

   public static void main(String args[])throws MasterNotRunningException, IOException{

   // Instantiating a configuration class
   Configuration conf = HBaseConfiguration.create();

   // Instantiating HBaseAdmin class
   HBaseAdmin admin = new HBaseAdmin(conf);

   // Getting all the list of tables using HBaseAdmin object
   HTableDescriptor[] tableDescriptor =admin.listTables();

   // printing all the table names.
   for (int i=0; i<tableDescriptor.length;i++ ){
      System.out.println(tableDescriptor[i].getNameAsString());
   }
   
   }
 }

編譯和執行上述程式如下所示。

$javac ListTables.java
$java ListTables

下面列出的是輸出:

User
emp