În acest tutorial, veți învăța:
- Scrieți date în tabelul HBase: Shell
- Citiți datele din tabelul HBase: Shell
- Scrieți date în tabelul HBase: API JAVA
- Citiți datele din tabelul HBase: API JAVA
Scrieți date în tabelul HBase: Shell
Comanda put este utilizată pentru a stoca date într-un tabel
Syntax: put <'tablename'>,<'rowname'>,<'columnvalue'>,<'value'>
Această comandă este utilizată pentru următoarele lucruri
- Va pune o „valoare” a celulei la un tabel sau rând sau coloană definit sau specificat.
- Va coordona, opțional, ștampila de timp.
Exemplu:
- Aici plasăm valori în tabelul „guru99” sub rândul r1 și coloana c1
hbase> put 'guru99', 'r1', 'c1', 'value', 10
- Am plasat trei valori, 10,15 și 30 în tabelul „guru99” așa cum se arată în captura de ecran de mai jos
-
Să presupunem că dacă tabelul „Guru99” are o referință de tabel, cum ar fi g. De asemenea, putem rula comanda pe referința tabelului, de asemenea, ca
hbase> g.put 'guru99', 'r1', 'c1', 'value', 10
-
Ieșirea va fi așa cum se arată în captura de ecran de mai sus după plasarea valorilor în „guru99”.
Citiți datele din tabelul HBase: Shell
În această secțiune, vom verifica următoarele
- Valori care sunt inserate în tabelul HBase „guru99”
- Numele coloanelor cu valori prezente în tabelul HBase guru99
Din captura de ecran de mai sus, putem deduce
- Dacă executăm comanda „scan” în shell HBase, va afișa valorile inserate în „guru99” după cum urmează
- În shell-ul HBase, acesta va afișa valori inserate de codul nostru cu nume de coloane și rânduri
- Aici putem vedea numele coloanei inserate sunt „educație” și „proiecte”
- Valorile inserate sunt „BigData” și „Tutoriale HBase” în coloanele menționate
De asemenea, puteți utiliza comanda Obțineți pentru a citi date dintr-un tabel
Syntax: get <'tablename'>, <'rowname'>, {< Additional parameters>}
Aici
Utilizând această comandă, veți obține un conținut de rând sau celulă prezent în tabel. În plus, puteți adăuga parametri suplimentari, cum ar fi TIMESTAMP, TIMERANGE, VERSIONS, FILTERS etc. pentru a obține un anumit rând sau conținut de celulă.
Exemple: -
hbase> get 'guru99', 'r1', {COLUMN => 'c1'}
Pentru tabelul „guru99” rândul r1 și coloana c1 valorile se vor afișa folosind această comandă așa cum se arată în captura de ecran de mai sus
hbase> get 'guru99', 'r1'
Pentru tabelul „guru99” rândul va fi afișat valorile r1 folosind această comandă
hbase> get 'guru99', 'r1', {TIMERANGE => [ts1, ts2]}
Pentru tabelul „guru99” rândul 1 valorile din intervalul de timp ts1 și ts2 vor fi afișate folosind această comandă
hbase> get 'guru99', 'r1', {COLUMN => ['c1', 'c2', 'c3']}
Pentru tabelul „guru99” rândul r1 și valorile c1, c2, c3 ale familiilor de coloane vor fi afișate folosind această comandă
Scrieți date în tabelul HBase: API JAVA
În acest pas, vom scrie date în tabelul HBase "guru99"
În primul rând, trebuie să scriem cod pentru inserarea și recuperarea valorilor din HBase utilizând programul HBaseLoading.java.
Pentru a crea și a insera valori într-un tabel la nivel de coloană, trebuie să codificați ca mai jos .
Din ecranul de mai sus
- Când creăm configurația HBase, aceasta va indica orice configurații stabilim în fișierele base-site.xml și hbase-default.xml în timpul instalărilor HBase
- Crearea tabelului "guru99" folosind metoda HTable
- Adăugarea rândului 1 la tabelul „guru99”
- Specificarea numelor de coloane „educație” și „proiecte” și inserarea valorilor în numele coloanelor din rândul respectiv1. Valorile inserate aici sunt „BigData” și „HBaseTutorials”.
Citiți date din tabelul HBase: API Java
Oricare ar fi valorile pe care le-am plasat în tabelele HBase din secțiunea de mai sus, aici vom prelua și afișa acele valori.
Pentru preluarea rezultatelor stocate în „guru99”
Captura de ecran de mai sus arată că datele sunt citite din tabelul HBase „guru99”
- În acest sens, vom prelua valorile stocate în familiile de coloane, adică „educație” și „proiecte”
- Folosind comanda „get” vom prelua valorile stocate în tabelul HBase
- Scanarea rezultatelor utilizând comanda „scanare”. Valorile stocate în rândul 1 pe care le va afișa pe consolă.
Odată ce scrierea codului este terminată, trebuie să rulați aplicația java astfel
- Faceți clic dreapta pe HBaseLoading.java -> Run As -> Java Application
- După rularea „HBaseLoading .java”, valorile care urmează să fie inserate în „guru99” în fiecare coloană din HBase și în același program poate prelua și valori.
Iată codul complet
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();}}}
Rezumat:
După cum am discutat în acest tutorial, puteți utiliza comanda put pentru a insera date într-un tabel. Puteți utiliza scanarea, obține comanda pentru a citi datele dintr-un tabel