I den här handledningen lär du dig:
- Skriv data till HBase-tabell: Shell
- Läs data från HBase-tabellen: Shell
- Skriv data till HBase-tabell: JAVA API
- Läs data från HBase-tabellen: JAVA API
Skriv data till HBase-tabell: Shell
Put-kommandot används för att lagra data i en tabell
Syntax: put <'tablename'>,<'rowname'>,<'columnvalue'>,<'value'>
Detta kommando används för följande saker
- Det sätter ett cellvärde vid en definierad eller specificerad tabell eller rad eller kolumn.
- Det kommer valfritt att samordna tidsstämpel.
Exempel:
- Här placerar vi värden i tabellen "guru99" under rad r1 och kolumn c1
hbase> put 'guru99', 'r1', 'c1', 'value', 10
- Vi har placerat tre värden, 10,15 och 30 i tabellen "guru99" som visas på skärmdumpen nedan
-
Antag att om tabellen "Guru99" har någon tabellreferens som säg g. Vi kan också köra kommandot på tabellreferens också som
hbase> g.put 'guru99', 'r1', 'c1', 'value', 10
-
Utdata kommer att visas som visas i ovanstående skärmdump efter att ha placerat värden i "guru99".
Läs data från HBase-tabellen: Shell
I det här avsnittet kommer vi att kontrollera följande
- Värden som infogas i HBase-tabellen "guru99"
- Kolumnnamn med värden som finns i HBase Table guru99
Från ovanstående skärmdump kan vi dra slutsatsen
- Om vi kör "scan" -kommandot i HBase-skal visas de infogade värdena i "guru99" enligt följande
- I HBase-skal kommer det att visa värden infogade av vår kod med kolumn- och radnamn
- Här kan vi se att kolumnnamnet infogas är "utbildning" och "projekt"
- Värdena är "BigData" och "HBase Tutorials" i nämnda kolumner
Du kan också använda kommandot Get för att läsa data från en tabell
Syntax: get <'tablename'>, <'rowname'>, {< Additional parameters>}
Här inkluderar
Genom att använda detta kommando får du en rad eller ett cellinnehåll i tabellen. Utöver det kan du också lägga till ytterligare parametrar som TIMESTAMP, TIMERANGE, VERSIONS, FILTER etc. för att få en viss rad eller cellinnehåll.
Exempel: -
hbase> get 'guru99', 'r1', {COLUMN => 'c1'}
För tabellen "guru99 'visas rad r1 och kolumn c1-värden med det här kommandot som visas i skärmbilden ovan
hbase> get 'guru99', 'r1'
För tabellen "guru99" visas rad r1-värden med detta kommando
hbase> get 'guru99', 'r1', {TIMERANGE => [ts1, ts2]}
För tabellen "guru99" visas rad 1-värden i tidsintervallet ts1 och ts2 med detta kommando
hbase> get 'guru99', 'r1', {COLUMN => ['c1', 'c2', 'c3']}
För tabell "guru99" rad r1 och kolumnfamiljer c1, c2, c3 värden visas med detta kommando
Skriv data till HBase-tabell: JAVA API
I det här steget ska vi skriva data i HBase-tabellen "guru99"
Först måste vi skriva kod för att infoga och hämta värden från HBase med hjälp av programmet HBaseLoading.java.
För att skapa och infoga värden i en tabell på kolumnnivå måste du koda som nedan .
Från skärmbilden ovan
- När vi skapar HBase-konfiguration kommer den att peka på oavsett vilka konfigurationer vi ställer in i base-site.xml- och hbase-default.xml-filer under HBase-installationer
- Skapande av tabellen "guru99" med HTable-metoden
- Lägger till rad 1 i tabellen "guru99"
- Ange kolumnnamn "utbildning" och "projekt" och infoga värden i kolumnnamn i respektive rad1. Värdena som infogas här är "BigData" och "HBaseTutorials".
Läs data från HBase Table: Java API
Oavsett vilka värden vi placerade i HBase-tabeller i avsnittet ovan, här ska vi hämta och visa dessa värden.
För att hämta resultat som är lagrade i "guru99"
Ovanstående skärmdump visar att data läses från HBase-tabellen 'guru99'
- I detta ska vi hämta de värden som lagras i kolumnfamiljer, dvs. "utbildning" och "projekt"
- Med kommandot "get" ska vi hämta lagrade värden i HBase-tabellen
- Skanningsresultat med kommandot "scan". Värdena som lagras i rad 1 visas på konsolen.
När du har skrivit koden måste du köra Java-applikationen så här
- Högerklicka på HBaseLoading.java -> Kör som -> Java-applikation
- Efter att ha kört "HBaseLoading .java" kommer värdena att infogas i "guru99" i varje kolumn i HBase och i samma program kan det också hämta värden.
Här är den fullständiga koden
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();}}}
Sammanfattning:
Som vi diskuterade i denna handledning kan du använda kommandot put för att infoga data i en tabell. Du kan använda skanningen, få kommandot för att läsa data från en tabell