HBase - Tắt bảng
Tắt bảng bằng HBase Shell
Để xóa bảng hoặc thay đổi cài đặt của nó, trước tiên bạn cần phải tắt bảng bằng lệnh tắt. Bạn có thể kích hoạt lại nó bằng lệnh enable.
Dưới đây là cú pháp để tắt một bảng:
disable ‘emp’
Thí dụ
Dưới đây là một ví dụ cho thấy cách tắt một bảng.
hbase(main):025:0> disable 'emp'
0 row(s) in 1.2760 seconds
xác minh
Sau khi vô hiệu hóa bảng, bạn vẫn có thể cảm nhận được sự tồn tại của nó thông qua list và existscác lệnh. Bạn không thể quét nó. Nó sẽ cung cấp cho bạn lỗi sau.
hbase(main):028:0> scan 'emp'
ROW COLUMN + CELL
ERROR: emp is disabled.
bị vô hiệu hóa
Lệnh này được sử dụng để tìm xem một bảng có bị tắt hay không. Cú pháp của nó như sau.
hbase> is_disabled 'table name'
Ví dụ sau xác minh xem bảng có tên emp có bị vô hiệu hóa hay không. Nếu nó bị vô hiệu hóa, nó sẽ trả về true và nếu không, nó sẽ trả về false.
hbase(main):031:0> is_disabled 'emp'
true
0 row(s) in 0.0440 seconds
vô hiệu hóa tất cả
Lệnh này được sử dụng để tắt tất cả các bảng khớp với regex đã cho. Cú pháp chodisable_all lệnh được đưa ra bên dưới.
hbase> disable_all 'r.*'
Giả sử có 5 bảng trong HBase, đó là raja, rajani, rajendra, rajesh và raju. Đoạn mã sau sẽ vô hiệu hóa tất cả các bảng bắt đầu bằngraj.
hbase(main):002:07> disable_all 'raj.*'
raja
rajani
rajendra
rajesh
raju
Disable the above 5 tables (y/n)?
y
5 tables successfully disabled
Tắt bảng bằng Java API
Để xác minh xem một bảng có bị tắt hay không, isTableDisabled() được sử dụng và để tắt một bảng, disableTable()phương pháp được sử dụng. Các phương pháp này thuộc vềHBaseAdminlớp học. Làm theo các bước dưới đây để tắt bảng.
Bước 1
Khởi tạo HBaseAdmin lớp như hình bên dưới.
// Creating configuration object
Configuration conf = HBaseConfiguration.create();
// Creating HBaseAdmin object
HBaseAdmin admin = new HBaseAdmin(conf);
Bước 2
Xác minh xem bảng có bị tắt bằng cách sử dụng hay không isTableDisabled() như hình dưới đây.
Boolean b = admin.isTableDisabled("emp");
Bước 3
Nếu bảng không bị vô hiệu hóa, hãy tắt nó như hình dưới đây.
if(!b){
admin.disableTable("emp");
System.out.println("Table disabled");
}
Dưới đây là chương trình hoàn chỉnh để xác minh xem bảng có bị vô hiệu hóa hay không; nếu không, làm thế nào để vô hiệu hóa nó.
import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.MasterNotRunningException;
import org.apache.hadoop.hbase.client.HBaseAdmin;
public class DisableTable{
public static void main(String args[]) throws MasterNotRunningException, IOException{
// Instantiating configuration class
Configuration conf = HBaseConfiguration.create();
// Instantiating HBaseAdmin class
HBaseAdmin admin = new HBaseAdmin(conf);
// Verifying weather the table is disabled
Boolean bool = admin.isTableDisabled("emp");
System.out.println(bool);
// Disabling the table using HBaseAdmin object
if(!bool){
admin.disableTable("emp");
System.out.println("Table disabled");
}
}
}
Biên dịch và thực hiện chương trình trên như hình dưới đây.
$javac DisableTable.java
$java DsiableTable
Sau đây là đầu ra:
false
Table disabled