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
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.
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
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
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.
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);
Compruebe si la tabla está deshabilitado utilizando isTableDisabled() método como se muestra a continuación.
Boolean b = admin.isTableDisabled("emp");
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