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