HBase - Désactivation d'une table
Désactivation d'une table à l'aide de HBase Shell
Pour supprimer une table ou modifier ses paramètres, vous devez d'abord désactiver la table à l'aide de la commande disable. Vous pouvez le réactiver à l'aide de la commande enable.
Voici la syntaxe pour désactiver une table:
disable ‘emp’
Exemple
Ci-dessous est un exemple qui montre comment désactiver une table.
hbase(main):025:0> disable 'emp'
0 row(s) in 1.2760 seconds
Vérification
Après avoir désactivé la table, vous pouvez toujours sentir son existence grâce à list et existscommandes. Vous ne pouvez pas le scanner. Cela vous donnera l'erreur suivante.
hbase(main):028:0> scan 'emp'
ROW COLUMN + CELL
ERROR: emp is disabled.
is_disabled
Cette commande permet de savoir si une table est désactivée. Sa syntaxe est la suivante.
hbase> is_disabled 'table name'
L'exemple suivant vérifie si la table nommée emp est désactivée. S'il est désactivé, il retournera true et sinon, il retournera false.
hbase(main):031:0> is_disabled 'emp'
true
0 row(s) in 0.0440 seconds
désactiver tous les
Cette commande est utilisée pour désactiver toutes les tables correspondant à l'expression régulière donnée. La syntaxe dedisable_all La commande est donnée ci-dessous.
hbase> disable_all 'r.*'
Supposons qu'il y ait 5 tables dans HBase, à savoir raja, rajani, rajendra, rajesh et raju. Le code suivant désactivera toutes les tables commençant parraj.
hbase(main):002:07> disable_all 'raj.*'
raja
rajani
rajendra
rajesh
raju
Disable the above 5 tables (y/n)?
y
5 tables successfully disabled
Désactiver une table à l'aide de l'API Java
Pour vérifier si une table est désactivée, isTableDisabled() méthode est utilisée et pour désactiver une table, disableTable()méthode est utilisée. Ces méthodes appartiennent auHBaseAdminclasse. Suivez les étapes ci-dessous pour désactiver un tableau.
Étape 1
Instancier HBaseAdmin classe comme indiqué ci-dessous.
// Creating configuration object
Configuration conf = HBaseConfiguration.create();
// Creating HBaseAdmin object
HBaseAdmin admin = new HBaseAdmin(conf);
Étape 2
Vérifiez si la table est désactivée à l'aide de isTableDisabled() méthode comme indiqué ci-dessous.
Boolean b = admin.isTableDisabled("emp");
Étape 3
Si le tableau n'est pas désactivé, désactivez-le comme indiqué ci-dessous.
if(!b){
admin.disableTable("emp");
System.out.println("Table disabled");
}
Ci-dessous est le programme complet pour vérifier si la table est désactivée; sinon, comment le désactiver.
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");
}
}
}
Compilez et exécutez le programme ci-dessus comme indiqué ci-dessous.
$javac DisableTable.java
$java DsiableTable
Ce qui suit devrait être la sortie:
false
Table disabled