hbase(main):001:0 > list
當(dāng)輸入這個(gè)命令,并在HBase提示符下執(zhí)行,它會(huì)顯示HBase中的所有表的列表,如下圖所示。
hbase(main):001:0> list TABLE emp
在這里,可以看到一個(gè)名為表emp。
按照下面給出的步驟來(lái)使用Java API從HBase獲得表的列表。
在類HBaseAdmin中有一個(gè)方法叫 listTables(),列出HBase中所有的表的列表。這個(gè)方法返回HTableDescriptor對(duì)象的數(shù)組。
//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();
就可以得到使用HTableDescriptor類長(zhǎng)度可變的HTableDescriptor[]數(shù)組的長(zhǎng)度。從該對(duì)象使用getNameAsString()方法獲得表的名稱。運(yùn)行'for'循環(huán)而獲得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()); } } }
編譯和執(zhí)行上述程序如下所示。
$javac ListTables.java $java ListTables
下面列出的是輸出:
User emp