HBase Tabelle erstellen mit Java API- und Shell-Beispiel
โก Intelligente Zusammenfassung
HBase speichert Daten in Tabellen, und diese Tabellen kรถnnen auf zwei Arten erstellt und verwaltet werden: รผber die Java API mit HTableDescriptoder und HBaseAdmin, oder direkt in der HBase-Shell mit dem Befehl create.

So erstellen Sie eine Tabelle in HBase mit Java API
In HBase kรถnnen Tabellen auf zwei Arten erstellt werden: รผber die Java API und รผber die HBase-Shell. Dieser Abschnitt behandelt die Java API, die es einer Anwendung ermรถglicht, Tabellen zu erstellen und Daten programmatisch im Rahmen eines grรถรeren Auftrags zu laden.
Durch Java API kรถnnen wir Tabellen in HBase erstellen und auch Daten in Tabellen laden mit Java Programmierung. Die beiden Dinge, die wir hier einrichten, sind:
- Herstellen einer Verbindung mit HBase รผber Java API.
- Die Verwendung von Eclipse fรผr Java Codierung, Fehlersuche und Tests.
Im Folgenden finden Sie die Schritte zum Erstellen von Tabellen in HBase durch Java API.
Schritt 1) Erstellen Sie eine Java Projekt in Eclipse
In diesem Schritt erstellen wir eine Java Projekt in Eclipse fรผr die HBase-Verbindung mit dem Namen โHbaseConnectionโ.
The New Java Im folgenden Projektdialog wird die Einrichtung des Projekts โHbaseConnectionโ angezeigt:
Betrachten wir den obigen Screenshot:
- Geben Sie in diesem Feld den Projektnamen ein. In unserem Fall lautet der Projektname โHbaseConnectionโ.
- Aktivieren Sie dieses Kontrollkรคstchen, um den Standardspeicherort festzulegen. Hier ist /home/hduser/work/HbaseConnection der Pfad.
- Kreuzen Sie das Kรคstchen an bei Java Umgebung hier. In diesem Fall JavaSE-1.7 ist der Java Ausgabe.
- Wรคhlen Sie die Option fรผr den Speicherort der Datei. In unserem Fall haben wir die zweite Option gewรคhlt: โEinen separaten Ordner fรผr Quell- und Klassendateien erstellenโ.
- Klicken Sie auf die Schaltflรคche โFertigstellenโ. Dadurch wird das Projekt โHbaseConnectionโ erstellt. Eclipse und รถffnet die Eclipse Startseite.
Schritt 2) Konfigurieren Sie den Build-Pfad in Eclipse
Auf dem Eclipse Folgen Sie diesen Schritten, um die Build-Pfad-Konfiguration zu รถffnen:
Right click on project -> Select Build Path -> Configure build path
Der folgende Screenshot zeigt das Kontextmenรผ (Rechtsklickmenรผ), mit dem die Konfiguration des Build-Pfads geรถffnet werden kann:
Aus dem obigen Screenshot:
- Klicken Sie mit der rechten Maustaste auf ein Projekt.
- Build-Pfad auswรคhlen.
- Wรคhlen Sie โBuildpfad konfigurierenโ.
Nach dem Klicken auf โBuildpfad konfigurierenโ รถffnet sich ein weiteres Fenster, wie im folgenden Screenshot dargestellt. Auf der Registerkarte โBibliothekenโ werden die HBase- und Hadoop-JAR-Dateien zum Projekt hinzugefรผgt:
In diesem Schritt fรผgen wir die entsprechenden HBase-JAR-Dateien hinzu. Java Das Projekt sieht aus wie im Screenshot dargestellt.
- Wichtige hinzuzufรผgende JAR-Dateien: hbase-0.94.8.jar und hadoop-core-1.1.2.jar.
- Wechseln Sie zum Reiter โBibliothekenโ.
- Drรผcken Sie die Option "Externe JAR-Dateien hinzufรผgen".
- Wรคhlen Sie die erforderlichen wichtigen JAR-Dateien aus.
- Drรผcken Sie die Schaltflรคche โFertigstellenโ, um diese Dateien zum โsrcโ-Verzeichnis hinzuzufรผgen. Java Projekt im Rahmen der Bibliotheken.
Nach dem Hinzufรผgen der JAR-Dateien erscheinen sie im Projektverzeichnis โsrcโ, wie unten dargestellt:
Alle JAR-Dateien, die zu diesem Projekt gehรถren, sind nun fรผr die Verwendung mit dem Hadoop-รkosystem bereit.
Schritt 3) Stellen Sie die HBase-Verbindung her
In diesem Schritt wird mithilfe von HBaseConnection.java die HBase-Verbindung hergestellt. Java Codierung.
Auf dem Eclipse oberstes Menรผ, ausfรผhren Java Programm wie unten gezeigt: Ausfรผhren -> Ausfรผhren als -> Java Anwendung. Das folgende Menรผ zeigt den Programmstart an:
- Wรคhlen Sie Ausfรผhren.
- Wรคhlen Sie โAusfรผhren alsโ Java Anwendung.
- Dieser Code stellt eine Verbindung zu HBase her รผber Java API.
- Nach Ausfรผhrung dieses Codes wird in HBase die Tabelle โguru99โ mit zwei Spaltenfamilien namens โeducationโ und โprojectsโ erstellt. Aktuell existiert in HBase lediglich ein leeres Schema.
Der folgende Codeausschnitt hebt die HTable hervor.Descriptoder und addFamily-Aufrufe, die das Tabellenschema erstellen:
Aus dem obigen Screenshot geht hervor, dass wir folgende Funktionen ausfรผhren:
- Verwenden von HTableDescriptOder wir kรถnnen die Tabelle โguru99โ in HBase erstellen.
- Mit der Methode addFamily fรผgen wir der Tabelle โguru99โ die Spaltenfamilien โeducationโ und โprojectsโ hinzu.
Der folgende Code stellt eine Verbindung zu HBase her und erstellt die Tabelle โguru99โ mit zwei Spaltenfamilien. Fรผgen Sie diesen Code unterhalb der Datei HBaseConnection.java ein:
// Place this code inside Hbase connection 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.HTableDescriptor; Import org.apache.hadoop.hbase.client.HBaseAdmin; public class HBaseConnection { public static void main(String[] args) throws IOException { HBaseConfigurationhc = new HBaseConfiguration(new Configuration()); HTableDescriptorht = new HTableDescriptor("guru99"); ht.addFamily( new HColumnDescriptor("education")); ht.addFamily( new HColumnDescriptor("projects")); System.out.println( "connecting" ); HBaseAdminhba = new HBaseAdmin( hc ); System.out.println( "Creating Table" ); hba.createTable( ht ); System.out.println("Done......"); } }
Dies ist der erforderliche Code, den Sie in HBaseConnection.java einfรผgen mรผssen, bevor Sie das Programm ausfรผhren. Java
Nach dem Ausfรผhren dieses Programms wird eine Verbindung zu HBase hergestellt und anschlieรend eine Tabelle mit Spaltennamen erstellt.
- Der Tabellenname lautet โguru99โ.
- Die Spaltenfamilien sind โBildungโ und โProjekteโ.
Schritt 4) รberprรผfen Sie die erstellte Tabelle in HBase
Wir kรถnnen mithilfe des Befehls โlistโ im HBase-Shell-Modus รผberprรผfen, ob die Tabelle โguru99โ in HBase mit zwei Spaltenfamilien erstellt wurde. Der Befehl โlistโ liefert Informationen รผber alle in HBase erstellten Tabellen.
Die Ausfรผhrung des Befehls โlistโ in der HBase-Shell bestรคtigt die neue Tabelle, wie unten dargestellt:
- Code รberprรผfen Sie dies in der HBase-Shell durch Ausfรผhren des Befehls โlistโ.
- Wenn wir den Befehl โlistโ ausfรผhren, werden die in HBase erstellten Tabellen angezeigt. In unserem Fall sehen wir, dass die Tabelle โguru99โ erstellt wurde.
HBase Tabelle mit Shell erstellen
Neben dem Java รber die API kรถnnen Sie direkt in der HBase-Shell eine Tabelle erstellen. Dies ist der schnellste Weg, eine Tabelle fรผr schnelle Tests einzurichten. Die Syntax zum Erstellen einer Tabelle in HBase รผber die Shell lautet:
Syntax: create <tablename>, <columnfamilyname>
Beispiel:-
hbase(main):001:0> create 'education' ,'guru99' 0 rows(s) in 0.312 seconds =>Hbase::Table โ education
Das obige Beispiel erklรคrt, wie man in HBase eine Tabelle mit dem angegebenen Namen gemรคร den Spezifikationen fรผr jede Spaltenfamilie erstellt. Zusรคtzlich kรถnnen wir ihr auch Tabellenattribute รผbergeben.
create 'guru99', {NAME=>'Edu', VERSIONS=>213423443}
Der Block {NAME=>'Edu', VERSIONS=>โฆ} definiert hier eine Spaltenfamilie namens โEduโ und die Anzahl der gespeicherten Zellversionen. Die hohe Zahl dient nur der Veranschaulichung; in der Praxis ist VERSIONS ein kleiner Wert wie 3 oder 5.
HBase-Tabellen auflisten, beschreiben und รผberprรผfen
Das Erstellen einer Tabelle ist nur der erste Schritt bei der Tabellenverwaltung in HBase. Sobald die Tabelle โguru99โ existiert, kรถnnen Sie sie mit einigen allgemeinen Befehlen รผberprรผfen und ihren Zustand bestรคtigen, bevor Sie Daten lesen, schreiben oder รคndern. Sie kรถnnen alle diese Befehle รผber die Benutzeroberflรคche ausfรผhren. HBase-Shell.
Der Befehl โlistโ gibt alle Benutzertabellen in HBase zurรผck:
hbase> list
Der Befehl โdescribeโ zeigt die Struktur einer Tabelle an, einschlieรlich ihrer Spaltenfamilien und ob sie aktuell aktiviert ist:
hbase> describe 'guru99'
Der Befehl exists prรผft, ob eine Tabelle vorhanden ist, und is_enabled meldet, ob die Tabelle Schreibvorgรคnge akzeptieren kann:
hbase> exists 'guru99' hbase> is_enabled 'guru99'
Diese schreibgeschรผtzten Prรผfungen kรถnnen jederzeit sicher ausgefรผhrt werden. Sie sind der schnellste Weg, um zu bestรคtigen, dass eine Tabelle korrekt erstellt wurde und um ihre Spaltenfamilien vor dem Laden von Daten zu รผberprรผfen.
รndern einer HBase-Tabelle
Das Schema einer HBase-Tabelle ist nach der Erstellung nicht unverรคnderlich. Der Befehl `alter` รคndert die Spaltenfamilien und Tabellenattribute einer Tabelle, ohne sie neu zu erstellen. Je nach Ihrer HBase-Version mรผssen Sie die Tabelle mรถglicherweise zuerst deaktivieren, dann `alter` ausfรผhren und sie anschlieรend wieder aktivieren.
So fรผgen Sie der Tabelle โguru99โ eine neue Spaltenfamilie hinzu:
hbase> alter 'guru99', {NAME => 'contact'}
So legen Sie fest, wie viele Versionen eine Spaltenfamilie speichert:
hbase> alter 'guru99', NAME => 'education', VERSIONS => 5
So lรถschen Sie eine Spaltenfamilie aus der Tabelle:
hbase> alter 'guru99', {NAME => 'contact', METHOD => 'delete'}
Sie kรถnnen auch Tabellenattribute รคndern. Beispielsweise kรถnnen Sie die Tabelle als schreibgeschรผtzt markieren oder die maximale Regionsdateigrรถรe auf 128 MB festlegen:
hbase> alter 'guru99', READONLY hbase> alter 'guru99', MAX_FILESIZE => '134217728'
Da der Befehl ALTER das Schema รผberschreibt, sollten รnderungen sorgfรคltig an einer Produktionstabelle geplant und das Ergebnis anschlieรend mit dem Befehl DESCRIBE bestรคtigt werden.
HBase-Tabellen deaktivieren, aktivieren und lรถschen
Um eine Tabelle zu entfernen oder bestimmte รnderungen vorzunehmen, mรผssen Sie diese in HBase zunรคchst deaktivieren. Durch die Deaktivierung wird die Tabelle offline genommen, sodass kein Client mehr darauf zugreifen kann. Dadurch werden strukturelle รnderungen sicher.
Eine Tabelle deaktivieren und ihren Status mit is_disabled รผberprรผfen:
hbase> disable 'guru99' hbase> is_disabled 'guru99'
Aktivieren Sie die Tabelle erneut, um Lese- und Schreibvorgรคnge fortzusetzen:
hbase> enable 'guru99'
Eine Tabelle muss deaktiviert werden, bevor sie gelรถscht werden kann. Lรถschenping Lรถscht die Tabelle und alle darin enthaltenen Daten endgรผltig, daher mit Vorsicht verwenden:
hbase> disable 'guru99' hbase> drop 'guru99'
Um mehrere Tabellen gleichzeitig zu entfernen, lรถscht `drop_all` alle Tabellen, deren Name einem regulรคren Ausdruck entspricht. Zusammen decken `create`, `alter`, `disable`, `enable` und `drop` den gesamten Lebenszyklus einer Tabelle ab. Datenverarbeitung in HBase-Tabellen.






