HBase - Beschreiben und Ändern



describe

Dieser Befehl gibt die Beschreibung der Tabelle. Es ist Syntax ist wie folgt:

hbase> describe 'table name'

Da unten ist die Ausgabe der Beschreiben Befehl in die emp Tabelle.

hbase(main):006:0> describe 'emp'
   DESCRIPTION
      ENABLED
      
'emp', {NAME => 'READONLY', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER
=> 'ROW', REPLICATION_SCOPE => '0', COMPRESSION => 'NONE', VERSIONS =>
'1', TTL true


=> 'FOREVER', MIN_VERSIONS => '0', KEEP_DELETED_CELLS => 'false',
BLOCKSIZE => '65536', IN_MEMORY => 'false', BLOCKCACHE => 'true'}, {NAME
=> 'personal


data', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'ROW',
REPLICATION_SCOPE => '0', VERSIONS => '5', COMPRESSION => 'NONE',
MIN_VERSIONS => '0', TTL


=> 'FOREVER', KEEP_DELETED_CELLS => 'false', BLOCKSIZE => '65536',
IN_MEMORY => 'false', BLOCKCACHE => 'true'}, {NAME => 'professional
data', DATA_BLO


CK_ENCODING => 'NONE', BLOOMFILTER => 'ROW', REPLICATION_SCOPE => '0',
VERSIONS => '1', COMPRESSION => 'NONE', MIN_VERSIONS => '0', TTL =>
'FOREVER', K


EEP_DELETED_CELLS => 'false', BLOCKSIZE => '65536', IN_MEMORY =>
'false', BLOCKCACHE => 'true'}, {NAME => 'table_att_unset',
DATA_BLOCK_ENCODING => 'NO 

NE', BLOOMFILTER => 'ROW', REPLICATION_SCOPE => '0', COMPRESSION =>
'NONE', VERSIONS => '1', TTL => 'FOREVER', MIN_VERSIONS => '0',
KEEP_DELETED_CELLS


=> 'false', BLOCKSIZE => '6

alter

alter ist der Befehl, verwenden um Änderungen an einer vorhandenen Tabelle zu machen. MitHilfe diesem Befehl Sie können ändern die maximale Anzahl der Zellen von einer Spalte Familie, setzt und löschen die Tisch Umfang Betreiber und löschen Spalte Familie von einer Tabelle.

Ändern der maximalen Anzahl der Zellen von einer Spalte Familie

Da unten ist die Syntax, um die maximale Anzahl von Zellen von Spalte Familie zu ändern.

hbase> alter 't1', NAME => 'f1', VERSIONS => 5

Im folgenden Beispiel ist die maximale Anzahl der Zellen auf 5 gesetzt ist.

hbase(main):003:0> alter 'emp', NAME => 'personal data', VERSIONS => 5
Updating all regions with the new schema...
0/1 regions updated.
1/1 regions updated.
Done.
0 row(s) in 2.3050 seconds

Tabelle Anwendungsbereich Operatoren

Unter Verwendung ändernFehlt, Sie können Setzt und entfernen tabelle Anwendungsbereich Betreiber so wie MAX_FILESIZE, READONLY, MEMSTORE_FLUSHSIZE, DEFERRED_LOG_FLUSH, etc.

Einstellung schreibgeschützt

Da unten ist die Syntax, zu machen eine Tabelle nur lesen.

hbase>alter 't1', READONLY(option)

Im folgenden Beispiel wir haben gemacht die emp Tabelle nur lesen.

hbase(main):006:0> alter 'emp', READONLY
Updating all regions with the new schema...
0/1 regions updated.
1/1 regions updated.
Done.
0 row(s) in 2.2140 seconds

Entfernen von Tabelle Anwendungsbereich Operatoren

Wir können auch die Tabelle Anwendungsbereich Betreiber zu entfernen. Da unten ist die Syntax zu entfernen 'MAX_FILESIZE' von Tabelle emp.

hbase> alter 't1', METHOD => 'table_att_unset', NAME => 'MAX_FILESIZE'

Löschen einer Spalte Familie

Unter Verwendung ändern Fehlt, können Sie auch eine Spalte Familie zu löschen. Da unten ist die Syntax, um eine Spalte zu löschen Familie Unter Verwendung ändern Fehlt.

hbase> alter ‘ table name ’, ‘delete’ => ‘ column family ’ 

Da unten ist ein Beispiel, zu löschen um eine Spalte Familie von der 'emp' Tabelle.

übernehmen, es gibt eine Tabelle mit dem Namen Mitarbeiter in HBase. Es enthält die folgenden Daten:

hbase(main):006:0> scan 'employee'

         ROW                   COLUMN+CELL

row1 column=personal:city, timestamp=1418193767, value=hyderabad

row1 column=personal:name, timestamp=1418193806767, value=raju

row1 column=professional:designation, timestamp=1418193767, value=manager

row1 column=professional:salary, timestamp=1418193806767, value=50000

1 row(s) in 0.0160 seconds 

Nun lassen uns Sie löschen die Spalte Familie namens professionelle Verwendung des ändern Fehlt Befehls.

hbase(main):007:0> alter 'employee','delete'=>'professional'
Updating all regions with the new schema...
0/1 regions updated.
1/1 regions updated.
Done.
0 row(s) in 2.2380 seconds 

Jetzt verifizieren Sie die Daten in der Tabelle nach der Veränderung. Beachten Sie die Spalte Familie "professionelle" ist nicht mehr, da wir es gelöscht haben.

hbase(main):003:0> scan 'employee'
 ROW             COLUMN+CELL
row1 column=personal:city, timestamp=14181936767, value=hyderabad

row1 column=personal:name, timestamp=1418193806767, value=raju

1 row(s) in 0.0830 seconds

Hinzufügen von eine Spalte Familie unter Verwendung des Java-API

Sie können hinzufügen eine Spalte Familie in eine Tabelle mit Hilfe der Methode addColumn() auf HBAseAdminKlasse. Folgen Sie den unten gegebenen Schritte, um eine Spalte Familie auf einer Tabelle hinzufügen.

Schritt 1

Instanziieren die HBaseAdmin Klasse.

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

// Instantiating HBaseAdmin class
HBaseAdmin admin = new HBaseAdmin(conf); 

Schritt 2

Die addColumn () Methode erfordert einen Tabellennamen und ein Objekt des HColumnDescriptor Klasse.Daher instanziiert die HColumnDescriptor Klasse. Der Konstruktor von HColumnDescriptor in wiederum erfordert eine Spalte Familiennamen, die hinzugefügt werden soll. Hier werden wir das Hinzufügen einer Spalte Familie mit dem Namen "Kontaktdetails" an die bestehende "Arbeitnehmer" Tisch.

// Instantiating columnDescriptor object

HColumnDescriptor columnDescriptor = new
HColumnDescriptor("contactDetails");

Schritt 3

Hinzufügen der Spalte Familie mit Hilfe add Column Verfahren. Übergeben den Tabellennamen und die HColumnDescriptor Klassenobjekt als Parameter an diese Methode.

// Adding column family
admin.addColumn("employee", new HColumnDescriptor("columnDescriptor"));

Da unten ist das vollständige Programm, um eine Spalte Familie zu einer vorhandenen Tabelle hinzufügen.

import java.io.IOException;

import org.apache.hadoop.conf.Configuration;

import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.HColumnDescriptor;
import org.apache.hadoop.hbase.MasterNotRunningException;
import org.apache.hadoop.hbase.client.HBaseAdmin;

public class AddColoumn{

   public static void main(String args[]) throws MasterNotRunningException, IOException{

      // Instantiating configuration class.
      Configuration conf = HBaseConfiguration.create();

      // Instantiating HBaseAdmin class.
      HBaseAdmin admin = new HBaseAdmin(conf);

      // Instantiating columnDescriptor class
      HColumnDescriptor columnDescriptor = new HColumnDescriptor("contactDetails");
      
      // Adding column family
      admin.addColumn("employee", columnDescriptor);
      System.out.println("coloumn added");
   }
}

Kompilieren Sie und führen Sie das obige Programm wie unten gezeigt.

$javac AddColumn.java
$java AddColumn

Die obige Kompilation funktioniert nur, wenn Sie den Klassenpfad in gesetzt haben " .bashrc ". Wenn Sie nicht, folgen die Prozedur wie gegeben unten, um Ihre .java-Datei kompilieren.

//if "/home/home/hadoop/hbase " is your Hbase home folder then.


$javac -cp /home/hadoop/hbase/lib/*: Demo.java

Wenn alles gut geht, wird es die folgende Ausgabe:

 column added

Löschen von eine Spalte Familie unter Verwendung des Java-API

Sie können löschen eine Spalte Familie aus einer Tabelle mit Hilfe der Methode deleteColumn() auf HBAseAdmin Klasse.Folgen Sie den unten gegebenen Schritte, um Hinzufügen eine Spalte Familie in eine Tabelle.

Schritt 1

Instanziieren die HBaseAdmin Klasse.

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

// Instantiating HBaseAdmin class
HBaseAdmin admin = new HBaseAdmin(conf); 

Schritt 2

Hinzufügen Spalte Familie mit Hilfe DeleteColumn () Methode. Übergeben den Namen der Tabelle und die Spalte Familiennamen als Parameter an diese Methode.

// Deleting column family
admin.deleteColumn("employee", "contactDetails"); 

Da unten ist das vollständige Programm, um eine Spalte Familie aus einer vorhandenen Tabelle zu löschen.

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 DeleteColoumn{

   public static void main(String args[]) throws MasterNotRunningException, IOException{

      // Instantiating configuration class.
      Configuration conf = HBaseConfiguration.create();

      // Instantiating HBaseAdmin class.
      HBaseAdmin admin = new HBaseAdmin(conf);

      // Deleting a column family
      admin.deleteColumn("employee","contactDetails");
      System.out.println("coloumn deleted"); 
   }
}

Kompilieren Sie und führen Sie das obige Programm wie unten gezeigt.

$javac DeleteColumn.java
$java DeleteColumn

Folgendes sollte werden die Ausgangs:

column deleted
Advertisements