HBase - Отключение таблицы
Отключение таблицы с помощью HBase Shell
Чтобы удалить таблицу или изменить ее настройки, вам необходимо сначала отключить таблицу с помощью команды disable. Вы можете снова включить его, используя команду enable.
Ниже приведен синтаксис отключения таблицы:
disable ‘emp’
пример
Ниже приведен пример, показывающий, как отключить таблицу.
hbase(main):025:0> disable 'emp'
0 row(s) in 1.2760 seconds
Проверка
После отключения таблицы вы все еще можете ощутить ее существование через list и existsкоманды. Вы не можете его сканировать. Это даст вам следующую ошибку.
hbase(main):028:0> scan 'emp'
ROW COLUMN + CELL
ERROR: emp is disabled.
выключен
Эта команда используется для определения, отключена ли таблица. Его синтаксис следующий.
hbase> is_disabled 'table name'
В следующем примере проверяется, отключена ли таблица с именем emp. Если он отключен, он вернет true, а если нет, он вернет false.
hbase(main):031:0> is_disabled 'emp'
true
0 row(s) in 0.0440 seconds
отключить все
Эта команда используется для отключения всех таблиц, соответствующих данному регулярному выражению. Синтаксис дляdisable_all команда приведена ниже.
hbase> disable_all 'r.*'
Предположим, что в HBase есть 5 таблиц, а именно раджа, раджани, раджендра, раджеш и раджу. Следующий код отключит все таблицы, начинающиеся сraj.
hbase(main):002:07> disable_all 'raj.*'
raja
rajani
rajendra
rajesh
raju
Disable the above 5 tables (y/n)?
y
5 tables successfully disabled
Отключить таблицу с помощью Java API
Чтобы проверить, отключена ли таблица, isTableDisabled() используется метод и для отключения таблицы, disableTable()используется метод. Эти методы относятся кHBaseAdminкласс. Следуйте инструкциям ниже, чтобы отключить таблицу.
Шаг 1
Создать экземпляр HBaseAdmin класс, как показано ниже.
// Creating configuration object
Configuration conf = HBaseConfiguration.create();
// Creating HBaseAdmin object
HBaseAdmin admin = new HBaseAdmin(conf);
Шаг 2
Убедитесь, что таблица отключена, используя isTableDisabled() метод, как показано ниже.
Boolean b = admin.isTableDisabled("emp");
Шаг 3
Если таблица не отключена, отключите ее, как показано ниже.
if(!b){
admin.disableTable("emp");
System.out.println("Table disabled");
}
Ниже приведена полная программа для проверки, отключена ли таблица; если нет, то как отключить.
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");
}
}
}
Скомпилируйте и выполните указанную выше программу, как показано ниже.
$javac DisableTable.java
$java DsiableTable
На выходе должно получиться следующее:
false
Table disabled