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