HBase - wyłączanie tabeli
Wyłączanie tabeli przy użyciu powłoki HBase
Aby usunąć tabelę lub zmienić jej ustawienia, musisz najpierw wyłączyć tabelę za pomocą polecenia disable. Możesz go ponownie włączyć za pomocą polecenia enable.
Poniżej podano składnię wyłączania tabeli:
disable ‘emp’
Przykład
Poniżej podano przykład, który pokazuje, jak wyłączyć tabelę.
hbase(main):025:0> disable 'emp'
0 row(s) in 1.2760 seconds
Weryfikacja
Po wyłączeniu stołu nadal możesz wyczuć jego istnienie list i existspolecenia. Nie możesz go zeskanować. To da następujący błąd.
hbase(main):028:0> scan 'emp'
ROW COLUMN + CELL
ERROR: emp is disabled.
jest niepełnosprawny
To polecenie służy do sprawdzania, czy tabela jest wyłączona. Jego składnia jest następująca.
hbase> is_disabled 'table name'
Poniższy przykład sprawdza, czy tabela o nazwie emp jest wyłączona. Jeśli jest wyłączona, zwróci wartość true, a jeśli nie, zwróci wartość false.
hbase(main):031:0> is_disabled 'emp'
true
0 row(s) in 0.0440 seconds
Wyłącz wszystkie
To polecenie służy do wyłączania wszystkich tabel pasujących do podanego wyrażenia regularnego. Składniadisable_all polecenie podano poniżej.
hbase> disable_all 'r.*'
Załóżmy, że w HBase jest 5 tabel, mianowicie raja, rajani, rajendra, rajesh i raju. Poniższy kod wyłączy wszystkie tabele zaczynające się odraj.
hbase(main):002:07> disable_all 'raj.*'
raja
rajani
rajendra
rajesh
raju
Disable the above 5 tables (y/n)?
y
5 tables successfully disabled
Wyłącz tabelę za pomocą interfejsu API języka Java
Aby sprawdzić, czy tabela jest wyłączona, isTableDisabled() metoda jest używana i wyłącza tabelę, disableTable()metoda jest używana. Te metody należą doHBaseAdminklasa. Wykonaj kroki podane poniżej, aby wyłączyć tabelę.
Krok 1
Utwórz instancję HBaseAdmin klasa, jak pokazano poniżej.
// Creating configuration object
Configuration conf = HBaseConfiguration.create();
// Creating HBaseAdmin object
HBaseAdmin admin = new HBaseAdmin(conf);
Krok 2
Sprawdź, czy tabela jest wyłączona za pomocą isTableDisabled() metoda, jak pokazano poniżej.
Boolean b = admin.isTableDisabled("emp");
Krok 3
Jeśli tabela nie jest wyłączona, wyłącz ją, jak pokazano poniżej.
if(!b){
admin.disableTable("emp");
System.out.println("Table disabled");
}
Poniżej podano kompletny program do weryfikacji, czy tabela jest wyłączona; jeśli nie, jak to wyłączyć.
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");
}
}
}
Skompiluj i wykonaj powyższy program, jak pokazano poniżej.
$javac DisableTable.java
$java DsiableTable
Wynik powinien być następujący:
false
Table disabled