I denne vejledning lærer du:
- Skriv data til HBase-tabel: Shell
- Læs data fra HBase-tabel: Shell
- Skriv data til HBase-tabel: JAVA API
- Læs data fra HBase-tabel: JAVA API
Skriv data til HBase-tabel: Shell
Put-kommandoen bruges til at gemme data i en tabel
Syntax: put <'tablename'>,<'rowname'>,<'columnvalue'>,<'value'>
Denne kommando bruges til følgende ting
- Det sætter en celle 'værdi' i en defineret eller specificeret tabel eller række eller kolonne.
- Det vil eventuelt koordinere tidsstempel.
Eksempel:
- Her placerer vi værdier i tabel "guru99" under række r1 og kolonne c1
hbase> put 'guru99', 'r1', 'c1', 'value', 10
- Vi har placeret tre værdier, 10,15 og 30 i tabel "guru99" som vist på skærmbilledet nedenfor
-
Antag, at hvis tabellen "Guru99" har en tabelhenvisning som f.eks. G. Vi kan også køre kommandoen på tabelhenvisning også ligesom
hbase> g.put 'guru99', 'r1', 'c1', 'value', 10
-
Outputtet vil være som vist i ovenstående skærmbillede efter placering af værdier i "guru99".
Læs data fra HBase-tabel: Shell
I dette afsnit vil vi kontrollere følgende
- Værdier, der indsættes i HBase-tabellen "guru99"
- Kolonnenavne med værdier til stede i HBase Table guru99
Fra ovenstående skærmbillede kan vi udlede
- Hvis vi kører "scan" -kommandoen i HBase shell, vil den vise de indsatte værdier i "guru99" som følger
- I HBase shell viser den værdier indsat af vores kode med kolonne- og rækkenavne
- Her kan vi se det indsatte kolonnenavn er "uddannelse" og "projekter"
- De indsatte værdier er "BigData" og "HBase Tutorials" i nævnte kolonner
Du kan også bruge kommandoen Get til at læse data fra en tabel
Syntax: get <'tablename'>, <'rowname'>, {< Additional parameters>}
Her inkluderer
Ved at bruge denne kommando får du en række eller et celleindhold til stede i tabellen. Derudover kan du også tilføje yderligere parametre til det som TIMESTAMP, TIMERANGE, VERSIONER, FILTER osv. For at få en bestemt række eller celleindhold.
Eksempler: -
hbase> get 'guru99', 'r1', {COLUMN => 'c1'}
For tabel "vises guru99 'række r1 og kolonne c1 værdier ved hjælp af denne kommando som vist i ovenstående skærmbillede
hbase> get 'guru99', 'r1'
For tabel "guru99" vises række r1-værdier ved hjælp af denne kommando
hbase> get 'guru99', 'r1', {TIMERANGE => [ts1, ts2]}
For tabel "guru99" vises række 1-værdier i tidsområdet ts1 og ts2 ved hjælp af denne kommando
hbase> get 'guru99', 'r1', {COLUMN => ['c1', 'c2', 'c3']}
For tabel "guru99" vises række r1 og kolonnefamiliernes c1-, c2-, c3-værdier ved hjælp af denne kommando
Skriv data til HBase-tabel: JAVA API
I dette trin skal vi skrive data i HBase-tabellen "guru99"
Først skal vi skrive kode for at indsætte og hente værdier fra HBase ved hjælp af programmet HBaseLoading.java.
For at oprette og indsætte værdier i en tabel på søjleniveau skal du kode som nedenfor .
Fra skærmbilledet ovenfor
- Når vi opretter HBase-konfiguration, vil den pege på uanset de konfigurationer, vi indstiller i base-site.xml- og hbase-default.xml-filer under HBase-installationer
- Oprettelse af tabel "guru99" ved hjælp af HTable-metoden
- Tilføjer række 1 til tabel "guru99"
- Angivelse af kolonnenavne "uddannelse" og "projekter" og indsættelse af værdier i kolonnenavne i den respektive række1. De her indsatte værdier er "BigData" og "HBaseTutorials".
Læs data fra HBase-tabel: Java API
Uanset hvilke værdier vi placerede i HBase-tabeller i ovenstående afsnit, skal vi hente og vise disse værdier.
For at hente resultater gemt i "guru99"
Ovenstående skærmbillede viser, at dataene læses fra HBase-tabellen 'guru99'
- I dette skal vi hente de værdier, der er gemt i kolonnefamilier, dvs. "uddannelse" og "projekter"
- Ved hjælp af "get" -kommandoen skal vi hente lagrede værdier i HBase-tabellen
- Scanningsresultater ved hjælp af kommandoen "scan". De værdier, der er gemt i række1, vises på konsollen.
Når først kode er skrevet, skal du køre java-applikationer som denne
- Højreklik på HBaseLoading.java -> Kør som -> Java-applikation
- Efter at have kørt "HBaseLoading .java", indsættes værdierne i "guru99" i hver kolonne i HBase, og i det samme program kan den også hente værdier.
Her er den komplette kode
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();}}}
Resumé:
Som vi diskuterede i denne vejledning, kan du bruge kommandoen put til at indsætte data i en tabel. Du kan bruge scanningen, få kommandoen til at læse data fra en tabel