HBase - Bảng danh sách
Liệt kê một bảng bằng HBase Shell
list là lệnh được sử dụng để liệt kê tất cả các bảng trong HBase. Dưới đây là cú pháp của lệnh danh sách.
hbase(main):001:0 > list
Khi bạn gõ lệnh này và thực hiện trong dấu nhắc HBase, nó sẽ hiển thị danh sách tất cả các bảng trong HBase như hình dưới đây.
hbase(main):001:0> list
TABLE
emp
Ở đây bạn có thể quan sát một bảng tên là emp.
Bảng liệt kê sử dụng Java API
Làm theo các bước dưới đây để nhận danh sách các bảng từ HBase bằng cách sử dụng API java.
Bước 1
Bạn có một phương thức được gọi là listTables() trong lớp HBaseAdminđể lấy danh sách tất cả các bảng trong HBase. Phương thức này trả về một mảngHTableDescriptor các đối tượng.
//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();
Bước 2
Bạn có thể nhận được chiều dài của HTableDescriptor[] mảng sử dụng biến độ dài của HTableDescriptorlớp học. Lấy tên của các bảng từ đối tượng này bằng cách sử dụnggetNameAsString()phương pháp. Chạy vòng lặp 'for' bằng cách sử dụng các bảng này và nhận danh sách các bảng trong HBase.
Dưới đây là chương trình liệt kê tất cả các bảng trong HBase bằng cách sử dụng 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());
}
}
}
Biên dịch và thực hiện chương trình trên như hình dưới đây.
$javac ListTables.java
$java ListTables
Sau đây là đầu ra:
User
emp