HBase - Tabloyu Devre Dışı Bırakma

HBase Shell kullanarak Tabloyu Devre Dışı Bırakma

Bir tabloyu silmek veya ayarlarını değiştirmek için, önce devre dışı bırak komutunu kullanarak tabloyu devre dışı bırakmanız gerekir. Etkinleştirme komutunu kullanarak yeniden etkinleştirebilirsiniz.

Aşağıda, bir tabloyu devre dışı bırakmak için kullanılan sözdizimi verilmiştir:

disable ‘emp’

Misal

Aşağıda bir tablonun nasıl devre dışı bırakılacağını gösteren bir örnek verilmiştir.

hbase(main):025:0> disable 'emp'
0 row(s) in 1.2760 seconds

Doğrulama

Tabloyu devre dışı bıraktıktan sonra, varlığını hala hissedebilirsiniz. list ve existskomutlar. Tarayamazsınız. Size aşağıdaki hatayı verecektir.

hbase(main):028:0> scan 'emp'
ROW         COLUMN + CELL
ERROR: emp is disabled.

is_disabled

Bu komut, bir tablonun devre dışı bırakılıp bırakılmadığını bulmak için kullanılır. Sözdizimi aşağıdaki gibidir.

hbase> is_disabled 'table name'

Aşağıdaki örnek, emp adlı tablonun devre dışı bırakılıp bırakılmadığını doğrular. Devre dışı bırakılırsa, doğru, değilse, yanlış döndürür.

hbase(main):031:0> is_disabled 'emp'
true
0 row(s) in 0.0440 seconds

Tümünü devre dışı bırak

Bu komut, verilen regex ile eşleşen tüm tabloları devre dışı bırakmak için kullanılır. Sözdizimidisable_all komut aşağıda verilmiştir.

hbase> disable_all 'r.*'

HBase'de raja, rajani, rajendra, rajesh ve raju olmak üzere 5 tablo olduğunu varsayalım. Aşağıdaki kod, ile başlayan tüm tabloları devre dışı bırakacaktır.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 Kullanarak Bir Tabloyu Devre Dışı Bırakın

Bir tablonun devre dışı bırakılıp bırakılmadığını doğrulamak için, isTableDisabled() yöntem kullanılır ve bir tabloyu devre dışı bırakmak için, disableTable()yöntem kullanılır. Bu yöntemler,HBaseAdminsınıf. Bir tabloyu devre dışı bırakmak için aşağıda verilen adımları izleyin.

Aşama 1

Örneklendirmek HBaseAdmin aşağıda gösterildiği gibi sınıf.

// Creating configuration object
Configuration conf = HBaseConfiguration.create();

// Creating HBaseAdmin object
HBaseAdmin admin = new HBaseAdmin(conf);

Adım 2

Kullanarak tablonun devre dışı bırakılıp bırakılmadığını doğrulayın isTableDisabled() yöntemi aşağıda gösterildiği gibi.

Boolean b = admin.isTableDisabled("emp");

Aşama 3

Tablo devre dışı bırakılmamışsa, aşağıda gösterildiği gibi devre dışı bırakın.

if(!b){
   admin.disableTable("emp");
   System.out.println("Table disabled");
}

Aşağıda, tablonun devre dışı bırakılıp bırakılmadığını doğrulamak için eksiksiz bir program verilmiştir; değilse, nasıl devre dışı bırakılır.

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");
      }
   }
}

Yukarıdaki programı aşağıda gösterildiği gibi derleyin ve çalıştırın.

$javac DisableTable.java
$java DsiableTable

Aşağıdakiler çıktı olmalıdır:

false
Table disabled