HBase - 列出表
使用 HBase Shell 列出表
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对象数组。
//创建配置对象 Configuration conf = HBaseConfiguration.create(); //创建HBaseAdmin对象 HBaseAdmin admin = new HBaseAdmin(conf); //使用HBaseAdmin对象获取所有表列表 HTableDescriptor[] tableDescriptor = admin.listTables();
步骤 2
您可以使用 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{ // 实例化配置类 Configuration conf = HBaseConfiguration.create(); // 实例化 HBaseAdmin 类 HBaseAdmin admin = new HBaseAdmin(conf); // 使用 HBaseAdmin 对象获取所有表列表 HTableDescriptor[] tableDescriptor = admin.listTables(); // 打印所有表名称。 for (int i=0; i<tableDescriptor.length;i++ ){ System.out.println(tableDescriptor[i].getNameAsString()); } } }
编译并执行上述程序,如下所示。
$javac ListTables.java $java ListTables
输出应如下所示:
User emp