使用Shell列出表

list 是用来列出HBase中所有表的命令。下面给出了 list 命令的语法。

  1. hbase(main):001:0 > list


当输入这个命令,并在HBase提示符下执行,它会显示HBase中的所有表的列表,如下图所示。

  1. hbase(main):001:0> list
  2. TABLE
  3. emp


在这里,可以看到一个名为表emp。

使用Java API列出表

  1. 按照下面给出的步骤来使用Java APIHBase获得表的列表。

第1步

  1. 在类HBaseAdmin中有一个方法叫 listTables(),列出HBase中所有的表的列表。这个方法返回HTableDescriptor对象的数组。
  1. //creating a configuration object
  2. Configuration conf = HBaseConfiguration.create();
  3. //Creating HBaseAdmin object
  4. HBaseAdmin admin = new HBaseAdmin(conf);
  5. //Getting all the list of tables using HBaseAdmin object
  6. HTableDescriptor[] tableDescriptor =admin.listTables();


第1步

  1. 就可以得到使用HTableDescriptor类长度可变的HTableDescriptor[]数组的长度。从该对象使用getNameAsString()方法获得表的名称。运行'for'循环而获得HBase表的列表。<br /> 下面给出的是使用Java API程序列出所有HBase中表的列表。
  1. import java.io.IOException;
  2. import org.apache.hadoop.conf.Configuration;
  3. import org.apache.hadoop.hbase.HBaseConfiguration;
  4. import org.apache.hadoop.hbase.HTableDescriptor;
  5. import org.apache.hadoop.hbase.MasterNotRunningException;
  6. import org.apache.hadoop.hbase.client.HBaseAdmin;
  7. public class ListTables {
  8. public static void main(String args[])throws MasterNotRunningException, IOException{
  9. // Instantiating a configuration class
  10. Configuration conf = HBaseConfiguration.create();
  11. // Instantiating HBaseAdmin class
  12. HBaseAdmin admin = new HBaseAdmin(conf);
  13. // Getting all the list of tables using HBaseAdmin object
  14. HTableDescriptor[] tableDescriptor =admin.listTables();
  15. // printing all the table names.
  16. for (int i=0; i<tableDescriptor.length;i++ ){
  17. System.out.println(tableDescriptor[i].getNameAsString());
  18. }
  19. }
  20. }
  1. 编译和执行上述程序如下所示。
  1. $javac ListTables.java
  2. $java ListTables
  1. 下面列出的是输出:
  1. User
  2. emp