Hbase 简明教程
HBase - Listing Table
Listing a Table using HBase Shell
list 是用于列出 HBase 中所有表的命令。以下是 list 命令的语法。
hbase(main):001:0 > list
当你键入此命令并在 HBase 提示符中执行它时,它会显示 HBase 中所有表的列表,如下所示。
hbase(main):001:0> list
TABLE
emp
此处你可以看到一个名为 emp 的表。
Listing Tables Using Java API
按照以下步骤使用 java API 从 HBase 获取表格列表。
Step 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();
Step 2
可以使用 HTableDescriptor 类的 length 变量获取 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