ioan eugen stan - introducere hbase

Post on 19-Jun-2015

552 Views

Category:

Technology

3 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Introducere: Apache HBase

Ioan Eugen StanÎntâlnirea RLUG iulie 2011

Ioan Eugen StanÎntâlnirea RLUG iulie 2011

Ce este Hbase...

● O bază de date distribuită construită peste HDFS (Hadoop FileSystem)

● Scalează liniar prin adăugarea de noi noduri● Nu este relațională (vezi NoSQL)● HBase = miliarde de rânduri X milioane de

coloane X mii de versiuni => Peta bytes de data

...și ce pate să facă pentru mine?

● Construită pentru: tabele foarte mari, incomplet (rar) populate distribuite în clustere realizate pe hardware „de serie” ca să:● stocheze în siguranță PetaBytes de date● permită operațiuni de citire/scriere în timp real● analiza și procesarea distribuită a datelor

Puțină arhitectură

● Compononte:● HbaseMaster

(inițializare, gestionează RegionServers)

● RegionServer (gestionează regiuni și răspund la cereri de citire/scriere)

● ZooKeeper (menține starea clusterului uniformă între noduri)

Distribuirea informației pe regiuni

Tabele, rânduri, coloane, celule

● Tabelele au mai multe rânduri● Rândurile sunt adresate unic prin cheie (șir de

octeți)● Rândurile sunt SORTATE după cheie● Rândurile au de obicei mai multe familii de

coloane● Fiecare familie poate avea MULTE coloane● Celulă = rând x coloană● Celulele sunt versionate

Explicație în imagini

RDBMS: Valorile nule ocupă spațiu.

HBase: Păstrează doar Informațiile necesare.

O configurație pentru un cluster de 800TB

Node Type Memory CPU

Master:running the NameNode, SecondaryNameNode, JobTracker and Hbase Master

24GB Dual quad-core, 2.0-2.5 GHz

Slave: runnning DataNodes, Task Trackers and Hbase RegionServers

24GB (and up) Dual quad-core, 2.0-2.5 GHz

Utilizare:

● Din HBase shell● Folosind API-ul nativ (Java)● Folosind MapReduce● Prin diverse interfețe: Avro, REST, Thrift.

Exemplu de utilizare HBase shell

base(main):021:0> put 'test', 'row1', 'data:1', 'value1'

1 row(s) in 0.0454 seconds

hbase(main):022:0> put 'test', 'row2', 'data:2', 'value2'

1 row(s) in 0.0035 seconds

hbase(main):023:0> put 'test', 'row3', 'data:3', 'value3'

1 row(s) in 0.0090 seconds

hbase(main):024:0> scan 'test'

ROW COLUMN+CELL

row1 column=data:1, timestamp=1240148026198, value=value1

row2 column=data:2, timestamp=1240148040035, value=value2

row3 column=data:3, timestamp=1240148047497, value=value3

3 row(s) in 0.0825 seconds

Gata!

Mulțumesc pentru atenție!Aștept întrebări aici sau la:stan.ieugen@gmail.com

top related