HBase - Листинговая таблица
Листинг таблицы с помощью HBase Shell
list - это команда, которая используется для вывода списка всех таблиц в HBase. Ниже приводится синтаксис команды list.
hbase(main):001:0 > list
Когда вы вводите эту команду и выполняете ее в командной строке HBase, она отображает список всех таблиц в HBase, как показано ниже.
hbase(main):001:0> list
TABLE
emp
Здесь вы можете увидеть таблицу с именем emp.
Список таблиц с использованием Java API
Следуйте инструкциям ниже, чтобы получить список таблиц из HBase с помощью java API.
Шаг 1
У вас есть метод под названием listTables() в классе HBaseAdminчтобы получить список всех таблиц в 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();
Шаг 2
Вы можете получить длину HTableDescriptor[] массив с использованием переменной длины HTableDescriptorкласс. Получите имя таблиц из этого объекта, используяgetNameAsString()метод. Запустите цикл for, используя их, и получите список таблиц в HBase.
Ниже приведена программа для вывода списка всех таблиц в HBase с использованием Java API.
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