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 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.
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
Unter Verwendung ändernFehlt, Sie können Setzt und entfernen tabelle Anwendungsbereich Betreiber so wie MAX_FILESIZE, READONLY, MEMSTORE_FLUSHSIZE, DEFERRED_LOG_FLUSH, etc.
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
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'
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
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.
Instanziieren die HBaseAdmin Klasse.
// Instantiating configuration object Configuration conf = HBaseConfiguration.create(); // Instantiating HBaseAdmin class HBaseAdmin admin = new HBaseAdmin(conf);
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");
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
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.
Instanziieren die HBaseAdmin Klasse.
// Instantiating configuration object Configuration conf = HBaseConfiguration.create(); // Instantiating HBaseAdmin class HBaseAdmin admin = new HBaseAdmin(conf);
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