
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