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