Ioan Eugen Stan - Introducere HBase
-
Upload
asociatia-prolinux -
Category
Technology
-
view
552 -
download
3
Transcript of Ioan Eugen Stan - Introducere HBase
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:[email protected]