HBase - Disabilitazione di una tabella

Disattivazione di una tabella utilizzando HBase Shell

Per eliminare una tabella o modificarne le impostazioni, è necessario prima disabilitare la tabella utilizzando il comando disable. Puoi riattivarlo utilizzando il comando enable.

Di seguito è riportata la sintassi per disabilitare una tabella:

disable ‘emp’

Esempio

Di seguito è riportato un esempio che mostra come disabilitare una tabella.

hbase(main):025:0> disable 'emp'
0 row(s) in 1.2760 seconds

Verifica

Dopo aver disabilitato la tabella, puoi ancora percepirne l'esistenza list e existscomandi. Non puoi scansionarlo. Ti darà il seguente errore.

hbase(main):028:0> scan 'emp'
ROW         COLUMN + CELL
ERROR: emp is disabled.

è disabilitato

Questo comando viene utilizzato per scoprire se una tabella è disabilitata. La sua sintassi è la seguente.

hbase> is_disabled 'table name'

L'esempio seguente verifica se la tabella denominata emp è disabilitata. Se è disabilitato, restituirà true e in caso contrario restituirà false.

hbase(main):031:0> is_disabled 'emp'
true
0 row(s) in 0.0440 seconds

disabilitare tutto

Questo comando viene utilizzato per disabilitare tutte le tabelle che corrispondono alla regex data. La sintassi perdisable_all comando è dato di seguito.

hbase> disable_all 'r.*'

Supponiamo che ci siano 5 tabelle in HBase, vale a dire raja, rajani, rajendra, rajesh e raju. Il codice seguente disabiliterà tutte le tabelle che iniziano conraj.

hbase(main):002:07> disable_all 'raj.*'
raja
rajani
rajendra
rajesh
raju
Disable the above 5 tables (y/n)?
y
5 tables successfully disabled

Disabilitare una tabella utilizzando l'API Java

Per verificare se una tabella è disabilitata, isTableDisabled() viene utilizzato il metodo e per disabilitare una tabella, disableTable()viene utilizzato il metodo. Questi metodi appartengono aHBaseAdminclasse. Seguire i passaggi indicati di seguito per disabilitare una tabella.

Passo 1

Istanziare HBaseAdmin classe come mostrato di seguito.

// Creating configuration object
Configuration conf = HBaseConfiguration.create();

// Creating HBaseAdmin object
HBaseAdmin admin = new HBaseAdmin(conf);

Passo 2

Verificare se la tabella è disabilitata utilizzando isTableDisabled() metodo come mostrato di seguito.

Boolean b = admin.isTableDisabled("emp");

Passaggio 3

Se la tabella non è disabilitata, disabilitarla come mostrato di seguito.

if(!b){
   admin.disableTable("emp");
   System.out.println("Table disabled");
}

Di seguito è riportato il programma completo per verificare se la tabella è disabilitata; in caso contrario, come disabilitarlo.

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");
      }
   }
}

Compilare ed eseguire il programma sopra come mostrato di seguito.

$javac DisableTable.java
$java DsiableTable

Il seguente dovrebbe essere l'output:

false
Table disabled