HBase - Tạo bảng

Tạo bảng bằng HBase Shell

Bạn có thể tạo một bảng bằng cách sử dụng createlệnh, ở đây bạn phải chỉ định tên bảng và tên họ cột. Cácsyntax để tạo một bảng trong HBase shell được hiển thị bên dưới.

create ‘<table name>’,’<column family>’

Thí dụ

Dưới đây là một lược đồ mẫu của một bảng có tên là emp. Nó có hai họ cột: "dữ liệu cá nhân" và "dữ liệu chuyên nghiệp".

Phím hàng dữ liệu cá nhân dữ liệu chuyên nghiệp

Bạn có thể tạo bảng này trong HBase shell như hình dưới đây.

hbase(main):002:0> create 'emp', 'personal data', 'professional data'

Và nó sẽ cung cấp cho bạn kết quả sau.

0 row(s) in 1.1300 seconds
=> Hbase::Table - emp

xác minh

Bạn có thể xác minh xem bảng có được tạo bằng cách sử dụng listlệnh như hình dưới đây. Tại đây bạn có thể quan sát bảng trống đã tạo.

hbase(main):002:0> list
TABLE 
emp
2 row(s) in 0.0340 seconds

Tạo bảng bằng API java

Bạn có thể tạo một bảng trong HBase bằng cách sử dụng createTable() phương pháp của HBaseAdminlớp học. Lớp này thuộc vềorg.apache.hadoop.hbase.clientgói hàng. Dưới đây là các bước để tạo bảng trong HBase bằng API java.

Bước 1: Khởi tạo HBaseAdmin

Lớp này yêu cầu đối tượng Cấu hình như một tham số, do đó ban đầu khởi tạo lớp Cấu hình và chuyển thể hiện này cho HBaseAdmin.

Configuration conf = HBaseConfiguration.create();
HBaseAdmin admin = new HBaseAdmin(conf);

Bước 2: Tạo TableDescriptor

HTableDescriptor là một lớp thuộc về org.apache.hadoop.hbaselớp học. Lớp này giống như một vùng chứa tên bảng và họ cột.

//creating table descriptor
HTableDescriptor table = new HTableDescriptor(toBytes("Table name"));

//creating column family descriptor
HColumnDescriptor family = new HColumnDescriptor(toBytes("column family"));

//adding coloumn family to HTable
table.addFamily(family);

Bước 3: Thực thi thông qua Admin

Sử dụng createTable() phương pháp của HBaseAdmin lớp, bạn có thể thực thi bảng đã tạo ở chế độ Quản trị viên.

admin.createTable(table);

Dưới đây là chương trình hoàn chỉnh để tạo một bảng thông qua quản trị viên.

import java.io.IOException;

import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.HColumnDescriptor;
import org.apache.hadoop.hbase.HTableDescriptor;
import org.apache.hadoop.hbase.client.HBaseAdmin;
import org.apache.hadoop.hbase.TableName;

import org.apache.hadoop.conf.Configuration;

public class CreateTable {
      
   public static void main(String[] args) throws IOException {

      // Instantiating configuration class
      Configuration con = HBaseConfiguration.create();

      // Instantiating HbaseAdmin class
      HBaseAdmin admin = new HBaseAdmin(con);

      // Instantiating table descriptor class
      HTableDescriptor tableDescriptor = new
      HTableDescriptor(TableName.valueOf("emp"));

      // Adding column families to table descriptor
      tableDescriptor.addFamily(new HColumnDescriptor("personal"));
      tableDescriptor.addFamily(new HColumnDescriptor("professional"));

      // Execute the table through admin
      admin.createTable(tableDescriptor);
      System.out.println(" Table created ");
   }
}

Biên dịch và thực hiện chương trình trên như hình dưới đây.

$javac CreateTable.java
$java CreateTable

Sau đây là đầu ra:

Table created