In questo tutorial imparerai:
- Scrivi i dati nella tabella HBase: Shell
- Leggi i dati dalla tabella HBase: Shell
- Scrivi dati nella tabella HBase: API JAVA
- Leggere i dati dalla tabella HBase: API JAVA
Scrivi i dati nella tabella HBase: Shell
Il comando put viene utilizzato per memorizzare i dati in una tabella
Syntax: put <'tablename'>,<'rowname'>,<'columnvalue'>,<'value'>
Questo comando viene utilizzato per le seguenti cose
- Metterà un "valore" di cella in una tabella o riga o colonna definita o specificata.
- Opzionalmente coordinerà il timestamp.
Esempio:
- Qui stiamo inserendo i valori nella tabella "guru99" sotto la riga r1 e la colonna c1
hbase> put 'guru99', 'r1', 'c1', 'value', 10
- Abbiamo inserito tre valori, 10,15 e 30 nella tabella "guru99" come mostrato nello screenshot qui sotto
-
Supponiamo che la tabella "Guru99" abbia qualche riferimento di tabella come diciamo g. Possiamo anche eseguire il comando su riferimento alla tabella anche come
hbase> g.put 'guru99', 'r1', 'c1', 'value', 10
-
L'output sarà come mostrato nella schermata sopra dopo aver inserito i valori in "guru99".
Leggi i dati dalla tabella HBase: Shell
In questa sezione, controlleremo quanto segue
- Valori inseriti nella tabella HBase "guru99"
- Nomi di colonna con valori presenti nella tabella HBase guru99
Dallo screenshot sopra, possiamo dedurre
- Se eseguiamo il comando "scan" nella shell HBase, verranno visualizzati i valori inseriti in "guru99" come segue
- Nella shell HBase, mostrerà i valori inseriti dal nostro codice con nomi di colonne e righe
- Qui possiamo vedere il nome della colonna inserita sono "istruzione" e "progetti"
- I valori inseriti sono "BigData" e "HBase Tutorials" nelle colonne menzionate
È inoltre possibile utilizzare il comando Ottieni per leggere i dati da una tabella
Syntax: get <'tablename'>, <'rowname'>, {< Additional parameters>}
Qui
Usando questo comando, otterrai una riga o il contenuto di una cella presente nella tabella. Oltre a ciò, puoi anche aggiungere parametri aggiuntivi come TIMESTAMP, TIMERANGE, VERSIONS, FILTERS, ecc. Per ottenere una determinata riga o contenuto di cella.
Esempi: -
hbase> get 'guru99', 'r1', {COLUMN => 'c1'}
Per i valori della riga r1 e della colonna c1 della tabella "guru99" verranno visualizzati utilizzando questo comando, come mostrato nella schermata sopra
hbase> get 'guru99', 'r1'
Per la tabella "guru99", i valori della riga r1 verranno visualizzati utilizzando questo comando
hbase> get 'guru99', 'r1', {TIMERANGE => [ts1, ts2]}
Per la tabella "guru99", i valori della riga 1 nell'intervallo di tempo ts1 e ts2 verranno visualizzati utilizzando questo comando
hbase> get 'guru99', 'r1', {COLUMN => ['c1', 'c2', 'c3']}
Per la tabella "guru99", la riga r1 e i valori c1, c2, c3 delle famiglie di colonne verranno visualizzati utilizzando questo comando
Scrivi dati nella tabella HBase: API JAVA
In questo passaggio, scriveremo i dati nella tabella HBase "guru99"
Per prima cosa, dobbiamo scrivere il codice per inserire e recuperare i valori da HBase utilizzando il programma HBaseLoading.java.
Per creare e inserire valori in una tabella a livello di colonna, devi codificare come di seguito .
Dalla schermata qui sopra
- Quando creiamo la configurazione HBase, punterà a qualunque configurazione abbiamo impostato nei file base-site.xml e hbase-default.xml durante le installazioni HBase
- Creazione della tabella "guru99" utilizzando il metodo HTable
- Aggiunta della riga1 alla tabella "guru99"
- Specificare i nomi delle colonne "istruzione" e "progetti" e inserire valori nei nomi delle colonne nella rispettiva riga1. I valori inseriti qui sono "BigData" e "HBaseTutorials".
Leggi i dati dalla tabella HBase: API Java
Qualunque siano i valori che abbiamo inserito nelle tabelle HBase nella sezione precedente, qui andremo a recuperare e visualizzare quei valori.
Per recuperare i risultati memorizzati in "guru99"
Lo screenshot qui sopra mostra che i dati vengono letti dalla tabella HBase "guru99"
- In questo, recupereremo i valori memorizzati nelle famiglie di colonne, ad esempio "istruzione" e "progetti"
- Usando il comando "get" andremo a prendere i valori memorizzati nella tabella HBase
- Scansione dei risultati utilizzando il comando "scan". I valori memorizzati nella riga1 verranno visualizzati sulla console.
Una volta terminata la scrittura del codice, devi eseguire un'applicazione java in questo modo
- Fare clic con il tasto destro su HBaseLoading.java -> Esegui come -> Applicazione Java
- Dopo aver eseguito "HBaseLoading .java" i valori vanno ad inserire in "guru99" in ogni colonna di HBase e nello stesso programma può recuperare anche i valori.
Ecco il codice completo
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();}}}
Sommario:
Come abbiamo discusso in questo tutorial, puoi usare il comando put per inserire dati in una tabella. È possibile utilizzare il comando scan, get per leggere i dati da una tabella