HBase - Desactivación de una Tabla


Advertisements

Para eliminar una tabla o cambiar su configuración, en primer lugar, es necesario desactivar la tabla utilizando el comando disable. Puede volver a activar, utilizando el comando enable.

A continuación se muestra la sintaxis para deshabilitar una tabla:

disable ‘emp’

A continuación se ofrece un ejemplo que muestra cómo deshabilitar una tabla.

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

Verificación

Después de desactivar la mesa, aún se puede sentir su existencia a través de la lista y exists los comandos. No se puede buscar en ella. Se le dará el siguiente error.

hbase(main):028:0> scan 'emp'

ROW         COLUMN+CELL

ERROR: emp is disabled.

Is_disabled

Este comando se utiliza para determinar si una tabla está deshabilitada. Su sintaxis es la siguiente.

hbase> is_disabled 'table name'

El siguiente ejemplo, se comprueba si la tabla emp está desactivado. Si está desactivada, devolverá true y si no, devolverá false.

hbase(main):031:0> is_disabled 'emp'

true

0 row(s) in 0.0440 seconds

Disable_all

Este comando se usa para desactivar todas las tablas que ha encontrado la regex. La sintaxis de comandos disable_all es dada a continuación.

hbase> disable_all 'r.*'

Supongamos que hay 5 mesas en HBase, raja, rajani, rajendra, rajesh y raju. El siguiente código para desactivar todas las tablas a partir de raj.

hbase(main):002:0> disable_all 'raj.*'

raja
rajani
rajendra
rajesh
raju
Disable the above 5 tables (y/n)?

y

5 tables successfully disabled

Desactivar una tabla utilizando la API de Java

Para comprobar si una tabla está deshabilitada, isTableDisabled() se utiliza el método y para desactivar una tabla, disableTable() se usa un método. Estos métodos pertenecen a la HBaseAdmin clase. Siga los pasos que se indican a continuación para desactivar una tabla.

Paso 1

Crear una instancia de clase HBaseAdmin como se muestra a continuación.

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

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

Paso 2

Compruebe si la tabla está deshabilitado utilizando isTableDisabled() método como se muestra a continuación.

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

Paso 3

Si la tabla no está inhabilitado, desactivar tal y como se muestra a continuación.

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

A continuación se incluye el programa completo para comprobar si la tabla está desactivada; si no es así, cómo desactivarlo.

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

   }
}

Compilar y ejecutar el programa como se muestra a continuación.

$javac DisableTable.java
$java DsiableTable

La siguiente salida debe ser:

false
Table disabled
Advertisements