HBase - Eliminar uma mesa
Descartando uma tabela usando o HBase Shell
Usando o dropcomando, você pode excluir uma tabela. Antes de derrubar uma mesa, você deve desabilitá-la.
hbase(main):018:0> disable 'emp'
0 row(s) in 1.4580 seconds
hbase(main):019:0> drop 'emp'
0 row(s) in 0.3060 seconds
Verifique se a tabela foi excluída usando o comando existing.
hbase(main):020:07gt; exists 'emp'
Table emp does not exist
0 row(s) in 0.0730 seconds
drop_all
Este comando é usado para eliminar as tabelas que correspondem ao “regex” fornecido no comando. Sua sintaxe é a seguinte:
hbase> drop_all ‘t.*’
Note: Antes de largar uma mesa, você deve desabilitá-la.
Exemplo
Suponha que haja tabelas chamadas raja, rajani, rajendra, rajesh e raju.
hbase(main):017:0> list
TABLE
raja
rajani
rajendra
rajesh
raju
9 row(s) in 0.0270 seconds
Todas essas tabelas começam com as letras raj. Em primeiro lugar, vamos desabilitar todas essas tabelas usando odisable_all comando como mostrado abaixo.
hbase(main):002:0> disable_all 'raj.*'
raja
rajani
rajendra
rajesh
raju
Disable the above 5 tables (y/n)?
y
5 tables successfully disabled
Agora você pode excluir todos eles usando o drop_all comando conforme fornecido abaixo.
hbase(main):018:0> drop_all 'raj.*'
raja
rajani
rajendra
rajesh
raju
Drop the above 5 tables (y/n)?
y
5 tables successfully dropped
Excluindo uma tabela usando a API Java
Você pode excluir uma tabela usando o deleteTable() método no HBaseAdminclasse. Siga as etapas fornecidas a seguir para excluir uma tabela usando a API Java.
Passo 1
Instancie a classe HBaseAdmin.
// creating a configuration object
Configuration conf = HBaseConfiguration.create();
// Creating HBaseAdmin object
HBaseAdmin admin = new HBaseAdmin(conf);
Passo 2
Desative a tabela usando o disableTable() método do HBaseAdmin classe.
admin.disableTable("emp1");
etapa 3
Agora exclua a tabela usando o deleteTable() método do HBaseAdmin classe.
admin.deleteTable("emp12");
A seguir está o programa java completo para excluir uma tabela no HBase.
import java.io.IOException;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.client.HBaseAdmin;
public class DeleteTable {
public static void main(String[] args) throws IOException {
// Instantiating configuration class
Configuration conf = HBaseConfiguration.create();
// Instantiating HBaseAdmin class
HBaseAdmin admin = new HBaseAdmin(conf);
// disabling table named emp
admin.disableTable("emp12");
// Deleting emp
admin.deleteTable("emp12");
System.out.println("Table deleted");
}
}
Compile e execute o programa acima conforme mostrado abaixo.
$javac DeleteTable.java
$java DeleteTable
O seguinte deve ser o resultado:
Table deleted