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