Пример за заявка на HBase: команда put(), get(), scan() в HBase

Записване на данни в HBase таблица: Shell

Командата put се използва за съхраняване на данни в таблица

Syntax:  put <'tablename'>,<'rowname'>,<'columnvalue'>,<'value'>

Тази команда се използва за следните неща

  • Той ще постави „стойност“ на клетка в определена или определена таблица, ред или колона.
  • По избор ще координира времеви печат.

Пример:

  • Тук поставяме стойности в таблица „guru99“ под ред r1 и колона c1
    hbase> put 'guru99', 'r1', 'c1', 'value', 10
  • Поставихме три стойности, 10,15 и 30 в таблица „guru99“, както е показано на екранната снимка по-долу

Записване на данни в HBase таблица: Shell

  • Да предположим, че таблицата „Guru99“ има някаква препратка към таблица като g. Можем също така да изпълним командата върху препратка към таблица също като
    hbase> g.put 'guru99', 'r1', 'c1', 'value', 10
  • Резултатът ще бъде както е показано на горната екранна снимка след поставяне на стойности в „guru99“.

Четене на данни от HBase таблица: Shell

В този раздел ще проверим следното

  • Стойности, които се вмъкват в HBase таблица „guru99“
  • Имена на колони със стойности, присъстващи в HBase Table guru99

Четене на данни от HBase таблица: Shell

От горната екранна снимка можем да заключим

  • Ако изпълним командата „сканиране“ в HBase shell, тя ще покаже вмъкнатите стойности в „guru99“, както следва
  • В обвивката на HBase той ще покаже стойности, вмъкнати от нашия код с имена на колони и редове
  • Тук можем да видим вмъкнато име на колона „образование“ и „проекти“
  • Вмъкнатите стойности са „BigData” и „HBase Tutorials” в споменатите колони

Можете също да използвате командата Get, за да прочетете данни от таблица

Syntax: get <'tablename'>, <'rowname'>, {< Additional parameters>}

тук включват TIMERANGE, TIMESTAMP, ВЕРСИИ и ФИЛТРИ.

С помощта на тази команда ще получите съдържание на ред или клетка в таблицата. В допълнение към това можете също да добавите допълнителни параметри към него като TIMESTAMP, TIMERANGE, VERSIONS, FILTERS и т.н., за да получите конкретен ред или съдържание на клетка.

Четене на данни от HBase таблица: Shell

Примери:-

hbase> get 'guru99', 'r1', {COLUMN => 'c1'}

За таблица „guru99′ стойностите на ред r1 и колона c1 ще се показват с помощта на тази команда, както е показано на екранната снимка по-горе

hbase> get 'guru99', 'r1'

За таблица „guru99“ стойностите на ред r1 ще бъдат показани с помощта на тази команда

hbase> get 'guru99', 'r1', {TIMERANGE => [ts1, ts2]}

За таблица „guru99“ стойностите на ред 1 във времевия диапазон ts1 и ts2 ще бъдат показани с помощта на тази команда

hbase> get 'guru99', 'r1', {COLUMN => ['c1', 'c2', 'c3']}

За таблица „guru99“ стойностите на c1, c1, c2 на ред r3 и семейства колони ще бъдат показани с помощта на тази команда

Записване на данни в HBase таблица: JAVA API

В тази стъпка ще запишем данни в HBase таблица „guru99“

Първо, трябва да напишем код за вмъкване и извличане на стойности от HBase, като използваме-Програма HBaseLoading.java.

За да създадете и вмъкнете стойности в таблица на ниво колона, трябва да кодирате както по-долу.

Записване на данни в HBase таблица: JAVA API

От горната екранна снимка

  1. Когато създаваме конфигурация на HBase, тя ще сочи към конфигурациите, които сме задали във файловете base-site.xml и hbase-default.xml по време на HBase инсталации
  2. Създаване на таблица “guru99” с помощта на метода HTable
  3. Добавяне на ред1 към таблица „guru99“
  4. Посочване на имена на колони „образование” и „проекти” и вмъкване на стойности в имената на колони в съответния ред1. Вмъкнатите тук стойности са „BigData“ и „HBaseTutorials“.

Прочетете данни от HBase таблица: Java API

Каквито и да са стойностите, които поставихме в таблиците на HBase в горния раздел, тук ще извлечем и покажем тези стойности.

За извличане на резултати, съхранени в „guru99“

Прочетете данни от HBase таблица: Java API

Екранната снимка по-горе показва, че данните се четат от HBase таблица 'guru99'

  1. В това ще извлечем стойностите, които се съхраняват в семейства колони, т.е. „образование“ и „проекти“
  2. С помощта на командата „get“ ще извлечем съхранени стойности в таблицата HBase
  3. Резултати от сканиране чрез командата „сканиране“. Стойностите, които се съхраняват в ред1, ще бъдат показани на конзолата.

След като пишете кода, трябва да стартирате Ява приложение като това

  • Щракнете с десния бутон върху HBaseLoading.java -> Стартирай като -> Java Приложение
  • След стартиране на „HBaseLoading .java“ стойностите ще бъдат вмъкнати в „guru99“ във всяка колона в HBase и в същата програма може също да извлича стойности.

Ето пълния код

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 following 							

table.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();							
       }							
   }							
}

Oбобщение

Както обсъдихме в този урок, можете да използвате командата put, за да вмъкнете данни в таблица. Можете да използвате командата scan, get за четене на данни от таблица