In diesem Tutorial lernen Sie:
- Daten in HBase-Tabelle schreiben: Shell
- Daten aus HBase-Tabelle lesen: Shell
- Daten in HBase-Tabelle schreiben: JAVA-API
- Daten aus HBase-Tabelle lesen: JAVA-API
Daten in HBase-Tabelle schreiben: Shell
Mit dem Befehl put werden Daten in einer Tabelle gespeichert
Syntax: put <'tablename'>,<'rowname'>,<'columnvalue'>,<'value'>
Dieser Befehl wird für die folgenden Dinge verwendet
- Es wird ein Zellenwert in eine definierte oder angegebene Tabelle, Zeile oder Spalte eingefügt.
- Optional wird der Zeitstempel koordiniert.
Beispiel:
- Hier platzieren wir Werte in der Tabelle "guru99" unter Zeile r1 und Spalte c1
hbase> put 'guru99', 'r1', 'c1', 'value', 10
- Wir haben drei Werte, 10,15 und 30, in die Tabelle "guru99" eingefügt, wie im folgenden Screenshot gezeigt
-
Angenommen, die Tabelle "Guru99" hat eine Tabellenreferenz wie z. B. g. Wir können den Befehl auch auf Tabellenreferenz wie auch ausführen
hbase> g.put 'guru99', 'r1', 'c1', 'value', 10
-
Die Ausgabe erfolgt wie im obigen Screenshot gezeigt, nachdem Werte in "guru99" eingegeben wurden.
Daten aus HBase-Tabelle lesen: Shell
In diesem Abschnitt werden wir Folgendes überprüfen
- Werte, die in die HBase-Tabelle "guru99" eingefügt werden
- Spaltennamen mit Werten in HBase Table guru99
Aus dem obigen Screenshot können wir schließen
- Wenn wir den Befehl "scan" in der HBase-Shell ausführen, werden die in "guru99" eingefügten Werte wie folgt angezeigt
- In der HBase-Shell werden die von unserem Code eingefügten Werte mit Spalten- und Zeilennamen angezeigt
- Hier sehen wir, dass die eingefügten Spaltennamen "Bildung" und "Projekte" sind.
- Die eingefügten Werte sind "BigData" und "HBase Tutorials" in den genannten Spalten
Sie können auch den Befehl Get verwenden, um Daten aus einer Tabelle zu lesen
Syntax: get <'tablename'>, <'rowname'>, {< Additional parameters>}
Hier umfassen
Mit diesem Befehl erhalten Sie einen Zeilen- oder Zelleninhalt in der Tabelle. Darüber hinaus können Sie zusätzliche Parameter wie TIMESTAMP, TIMERANGE, VERSIONS, FILTERS usw. hinzufügen, um einen bestimmten Zeilen- oder Zelleninhalt abzurufen.
Beispiele: -
hbase> get 'guru99', 'r1', {COLUMN => 'c1'}
Für die Tabelle "guru99" werden die Werte für Zeile r1 und Spalte c1 mit diesem Befehl angezeigt, wie im obigen Screenshot gezeigt
hbase> get 'guru99', 'r1'
Für die Tabelle "guru99" werden mit diesem Befehl r1-Werte angezeigt
hbase> get 'guru99', 'r1', {TIMERANGE => [ts1, ts2]}
Für die Tabelle "guru99" werden mit diesem Befehl Werte in Zeile 1 im Zeitbereich ts1 und ts2 angezeigt
hbase> get 'guru99', 'r1', {COLUMN => ['c1', 'c2', 'c3']}
Für die Tabelle "guru99" werden die Werte c1, c2, c3 der Zeilen r1 und Spaltenfamilien mit diesem Befehl angezeigt
Daten in HBase-Tabelle schreiben: JAVA-API
In diesem Schritt schreiben wir Daten in die HBase-Tabelle "guru99".
Zuerst müssen wir Code schreiben, um Werte aus HBase einzufügen und abzurufen, indem wir das Programm HBaseLoading.java verwenden.
Um Werte auf Spaltenebene zu erstellen und in eine Tabelle einzufügen, müssen Sie wie unten beschrieben codieren .
Aus dem obigen Screenshot
- Wenn wir eine HBase-Konfiguration erstellen, wird auf alle Konfigurationen verwiesen, die wir während der HBase-Installationen in den Dateien base-site.xml und hbase-default.xml festgelegt haben
- Erstellung der Tabelle "guru99" mit der HTable-Methode
- Hinzufügen von Zeile1 zur Tabelle "guru99"
- Angeben der Spaltennamen "Bildung" und "Projekte" und Einfügen von Werten in Spaltennamen in der jeweiligen Zeile1. Die hier eingefügten Werte sind "BigData" und "HBaseTutorials".
Daten aus HBase-Tabelle lesen: Java-API
Unabhängig von den Werten, die wir im obigen Abschnitt in HBase-Tabellen platziert haben, werden wir diese Werte hier abrufen und anzeigen.
Zum Abrufen der in "guru99" gespeicherten Ergebnisse
Der obige Screenshot zeigt, dass die Daten aus der HBase-Tabelle 'guru99' gelesen werden.
- In diesem werden wir die Werte abrufen, die in Spaltenfamilien gespeichert sind, dh "Bildung" und "Projekte".
- Mit dem Befehl "get" werden gespeicherte Werte in der HBase-Tabelle abgerufen
- Scannen der Ergebnisse mit dem Befehl "scan". Die Werte, die in Zeile 1 gespeichert sind, werden auf der Konsole angezeigt.
Sobald das Schreiben des Codes abgeschlossen ist, müssen Sie die Java-Anwendung wie folgt ausführen
- Klicken Sie mit der rechten Maustaste auf HBaseLoading.java -> Ausführen als -> Java-Anwendung
- Nach dem Ausführen von "HBaseLoading .java" werden die Werte, die in "guru99" in jeder Spalte in HBase eingefügt werden sollen, und im selben Programm können auch Werte abgerufen werden.
Hier ist der vollständige Code
import java.io.IOException;import org.apache.hadoop.hbase.HBaseConfiguration;import org.apache.hadoop.hbase.client.Get;import org.apache.hadoop.hbase.client.HTable;import org.apache.hadoop.hbase.client.Put;import org.apache.hadoop.hbase.client.Result;import org.apache.hadoop.hbase.client.ResultScanner;import org.apache.hadoop.hbase.client.Scan;import org.apache.hadoop.hbase.util.Bytes;public class HBaseLoading{public static void main(String[] args) throws IOException{/* When you create a HBaseConfiguration, it reads in whatever you've set into your hbase-site.xml and in hbase-default.xml, as long as these can be found on the CLASSPATH*/org.apache.hadoop.conf.Configuration config = HBaseConfiguration.create();/*This instantiates an HTable object that connects you to the "test" table*/HTable table = new HTable(config, "guru99");/* To add to a row, use Put. A Put constructor takes the name of the row you want to insert into as a byte array.*/Put p = new Put(Bytes.toBytes("row1"));/*To set the value you'd like to update in the row 'row1', specify the column family, column qualifier, and value of the table cell you'd like to update. The column family must already exist in your table schema. The qualifier can be anything.*/p.add(Bytes.toBytes("education"), Bytes.toBytes("col1"),Bytes.toBytes("BigData"));p.add(Bytes.toBytes("projects"),Bytes.toBytes("col2"),Bytes.toBytes("HBaseTutorials"));// Once you've adorned your Put instance with all the updates you want to make, to commit it do the followingtable.put(p);// Now, to retrieve the data we just wrote.Get g = new Get(Bytes.toBytes("row1"));Result r = table.get(g);byte [] value = r.getValue(Bytes.toBytes("education"),Bytes.toBytes("col1"));byte [] value1 = r.getValue(Bytes.toBytes("projects"),Bytes.toBytes("col2"));String valueStr = Bytes.toString(value);String valueStr1 = Bytes.toString(value1);System.out.println("GET: " +"education: "+ valueStr+"projects: "+valueStr1);Scan s = new Scan();s.addColumn(Bytes.toBytes("education"), Bytes.toBytes("col1"));s.addColumn(Bytes.toBytes("projects"), Bytes.toBytes("col2"));ResultScanner scanner = table.getScanner(s);try{for (Result rr = scanner.next(); rr != null; rr = scanner.next()){System.out.println("Found row : " + rr);}} finally{// Make sure you close your scanners when you are done!scanner.close();}}}
Zusammenfassung:
Wie in diesem Lernprogramm erläutert, können Sie mit dem Befehl put Daten in eine Tabelle einfügen. Mit dem Befehl scan, get können Sie Daten aus einer Tabelle lesen