Sunteți pe pagina 1din 18

Referat Integrarea Sistemelor ERP

Integrare MongoDB si Hadoop

Burdusa Manuela-Maria

Master IE anul II
CUPRINS

Introducere......................................................................................................................................3
1. Baze de date NoSQL....................................................................................................................4
1.1. Concept NoSQL....................................................................................................................4
1.2. Clasificarea bazelor de date NoSQL....................................................................................5
2. MongoDB.....................................................................................................................................6
2.1. Concept MongoDB................................................................................................................6
2.2. Arhitectura MongoDB..........................................................................................................7
2.3. Diferente intre MongoDB si RDBMS...................................................................................8
2.4. Caracteristici MongoDB.......................................................................................................8
3. Hadoop......................................................................................................................................10
3.1. Concept...............................................................................................................................10
3.2 Integrare MongoDB si Hadoop...........................................................................................10
3.3 Arhitectura Hadoop.............................................................................................................12
3.4. Modul de functionare Hadoop............................................................................................12
3.5 Proprietățile unui sistem Hadoop........................................................................................13
4. MapReduce in Hadoop..............................................................................................................14
4.1. Concept...............................................................................................................................14
4.2. Algoritmul MapReduce......................................................................................................14
4.3. Terminologie MapReduce..................................................................................................15
Concluzie.......................................................................................................................................16
Bibliografie....................................................................................................................................17
Introducere

Odată cu creșterea datelor din întreaga lume, a existat un interes observabil și în


creștere în jurul conceptului de baze de date non-relaționale, de asemenea cunoscut sub
numele de "NoSQL". Întreprinderile și organizațiile caută metode noi de gestionare pentru
Big Data și sunt îndreptate spre instrumentele și sistemele alternative de gestionare a bazelor
de date, care sunt diferite de sistemele tradiționale de baze de date relaționale.

Lumea digitală crește foarte rapid și devine mai complexă în volum (de la terabyte la
petabyte) si viteză. Aceasta se referă la "Big Data" care reprezintă un fenomen global.
Aceasta este de obicei considerată a fi o colecție de date care a evoluat foarte mult, încât nu
poate fi gestionată eficient sau exploatata utilizând instrumentele convenționale de gestionare
a datelor: de exemplu, baza de date relațională clasică (RDBMS) sau motoarele de căutare
convenționale. Pentru a rezolva această problemă, tradiționale RDBMS sunt completate de un
set bogat de alternative, cum ar fi: sistemele NoSQL, NewSQL și Search-based. Această
evolutie a sistemelor oferă clasificarea, caracteristicile și evaluarea bazelor de date NoSQL
cu ajutorul Google Analytics. Acest raport este destinat să ajute utilizatorii, în special pentru
organizațiile să obțină o înțelegere independentă a punctelor forte și a punctelor slabe ale
diferitelor baze de date NoSQL,  pentru a sprijinii aplicațiile care procesează volume imense
de date.
1. Baze de date NoSQL
1.1. Concept NoSQL

Bazele de date NoSQL ofera un mecanism de stocare si recuperare a datelor diferit de


implementarea in modelul relational, care se bazeaza pe structuri tabelare. Acestea sunt din
ce in ce mai utilizate in aplicatiile web, avand ca si avantaje simplitatea designului, scalare
mai simpla, flexibilitate si un control mai bun asupra disponibilitatii. Structurile de date
utilizate (cheie-valoare, coloana larga, grafic sau document) sunt diferite fata de cele utilizate
in mod implicit in bazele de date relationale, facilitand gradul de rapiditate al operatiilor.
Sistemele NoSQL sunt distribuite, concepute pentru date la scara larga de depozitare si
prelucrare pe un numar mare de servere. Sistemele NoSQL au aparut alaturi de companiile
mari, precum Google, Amazon si Facebook, care au avut provocari in tratarea unor cantitati
uriase de date. Aceste tipuri de baze de date au in vedere analiza exploratorie si predictiva,
transformarea datelor in stil ETL.

NoSQL are la baza teorema CAP (consistenta, accesibilitate, toleranta in privinta


partitiei)  si ofera un concept de “eventuala consistenta” (de obicei in milisecunde), astfel
incat interogarile nu returneaza imediat date actualizate. Prin utilizarea NoSQL se evita
complexitatea interogarii SQL, tranzactiile, schema bazei de date. NoSQL faciliteaza
modificarile frecvente asupra bazei de date, dezvoltare rapida, integrarea unui volum mare de
date.
1.2. Clasificarea bazelor de date NoSQL

Dupa modelul de date, bazele de date nerelationale se pot imparti in:

o Tip coloana: Hbase, Cassandra

o Tip document: MongoDB, Couchbase, Clusterpoint, ElasticSearch, CouchDB

o Tip cheie-valoare: Dynamo, Redis, Riak

o Tip graf: Neo4J, Allegro, Virtuoso

Dupa functionalitate, bazele de date nerelationale se pot clasifica astfel:

Modelul Cheie-Valoare

Este cel mai simplu model de baze de date non-relationale si are la baza stocarea datelor sub
forma unui hash-table. Datele pot fi accesate pe baza cheii de tip string si nu au un format
impus, pot avea orice tip. Datele sunt de tipul (cheie, valoare) si permit operatii de baza de
tipul Insert (cheie, valoare), Delete, Update, Fetch.
Modelul Document

Acest model a fost creat pentru gestionarea si stocarea documentelor codificate intr-un
schimb de date standard cum ar fi XML, JSON sau BSON (JSON binar). Spre deosebire de
modelul cheie-valoare, coloana ce contine valoarea din baza de date contine date semi-
structurate, in special atribute (key,value). O singura coloana poate gazdui sute de astfel de
atribute, iar numarul si tipul atributelor inregistrate pot varia de la rand la rand. Indexarile se
pot face atat dupa cheie, cat si dupa valoare. Compania care utilizeaza acest model este
Facebook. Acest model este utilizat pentru stocarea si gestionarea colectiilor Big Data:
CouchDB (JSON); MongoDB (BSON).

2. MongoDB
2.1. Concept MongoDB

MongoDB este o bază de date open source care utilizează un model de date orientat
spre documente și un limbaj de interogare nestructurat. Este unul dintre cele mai puternice
sisteme și baze de date NoSQL. Fiind un instrument NoSQL înseamnă că nu utilizează
rândurile și coloanele obișnuite pe care le asociem atât de mult managementului bazelor de
date relaționale.

Este o arhitectură construită pe colecții și documente. Unitatea de bază a datelor din


această bază de date constă dintr-un set de perechi cheie-valoare. Acesta permite ca
documentele să aibă domenii și structuri diferite. Această bază de date utilizează un format de
stocare document numit BSON, care este un stil binar de documente JSON stil. Modelul de
date pe care îl urmează MongoDB este unul foarte elastic, care permite combinarea si
stocarea datelor de tipuri variate fără a fi nevoie de compromis în ceea ce privește opțiunile
puternice de indexare, accesul la date și regulile de validare. Nu există o perioadă de
nefuncționare atunci când se are in vedere modfiicarea dinamica a schemelor.
2.2. Arhitectura MongoDB

 Baza de date

Cu cuvinte simple, poate fi numită containerul fizic pentru date. Fiecare dintre bazele
de date are propriul set de fișiere în sistemul de fișiere cu mai multe baze de date existente pe
un singur server MongoDB.

 Colectia

Un grup de documente de bază de date poate fi numit colecție. Echivalentul RDBMS


al colecției este un tabel. Întreaga colecție există într-o singură bază de date. Nu există
scheme când vine vorba despre colecții. În interiorul colecției, diferitele documente pot avea
domenii variate, dar mai ales documentele dintr-o colecție sunt destinate aceluiași scop sau
servesc aceluiași scop.

 Documentul

Un set de perechi cheie-valoare pot fi desemnate ca un document, ce poate fi asociat


cu scheme dinamice. Beneficiul de a avea scheme dinamice este acela că documentul dintr-o
singură colecție nu trebuie să aibă aceeași structură sau câmpuri. De asemenea, câmpurile
comune din documentul colecției pot avea diferite tipuri de date.
2.3. Diferente intre MongoDB si RDBMS

2.4. Caracteristici MongoDB


 Interogări: acceptă interogări ad-hoc și interogări bazate pe documente

 Suportul indexului: Orice câmp din document poate fi indexat

 Replicare: MongoDB utilizează aplicația nativă pentru a păstra mai multe copii ale
datelor. Împiedicarea perioadelor de nefuncționare a bazei de date este una din
caracteristicile setului de replici.

 Servere multiple: baza de date poate rula pe mai multe servere. Datele sunt duplicate
pentru a proteja sistemul în caz de defecțiuni hardware

 MapReduce: Suportă MapReduce și instrumente de agregare flexibile

 Manevrarea defecțiunilor: Sistemul MongoDB este ușor de administrat în caz de


defecțiuni. Numerele imense de replici oferă o protecție sporită și disponibilitatea
datelor împotriva perioadelor de nefuncționare a bazei de date, cum ar fi erorile,
eșecurile multiple ale mașinilor și eșecurile din centrul de date sau chiar partițiile din
rețea

 GridFS: Fără a complica stack-ul dvs., fișiere de orice dimensiuni pot fi stocate.
Funcția GridFS împarte fișierele în părți mai mici și le stochează ca un document
separat

 Proceduri: Combinația dintre JavaScript și MongoDB funcționează bine, deoarece


baza de date utilizează limba în locul procedurilor
3. Hadoop
3.1. Concept

Hadoop a fost un proiect open source lansat oficial în 2006. Hadoop a devenit o
platformă pentru procesarea cantităților masive de date în paralel între grupurile hardware de
mărfuri. A devenit sinonim cu Big Data, deoarece este cel mai popular instrument Big Data.

Hadoop are două componente principale: sistemul distribuit de fișiere Hadoop


(HDFS) și MapReduce. Componentele secundare includ HBase, Oozie, Sqoop și Flume.
Hadoop realizează scalabilitatea orizontală prin ștergerea bazei de date, la fel ca MongoDB.
Hadoop rulează pe grupuri de hardware de mărfuri. HDFS împarte fișierul în bucăți mai mici
și le stochează distribuit peste cluster. MapReduce procesează datele stocate în mod distribuit
peste cluster. MapReduce utilizează puterea computerelor distribuite, unde mai multe noduri
funcționează în paralel pentru a finaliza sarcina.

3.2 Integrare MongoDB si Hadoop

Big Data înseamnă noi oportunități pentru organizații de a aduce valoare in afaceri .
Baza de date MongoDB NoSQL poate sta la baza multor sisteme Big Data, nu numai ca un
magazin de date operaționale în timp real, ci și în capacități offline. Cu MongoDB,
organizațiile servesc mai multe date, mai mulți utilizatori, mai multă înțelegere cu mai multă
ușurință - și creând mai multă valoare pe plan mondial.
Datele pot fi integrate in timp real cu Hadoop prin intermediul unui conector care
expune puterea analitică a aplicației Hadoop. MapReduce se utilizeaza pentru a transmite
datele de aplicație de la MongoDB, determinând valoarea mai rapidă și mai eficientă pentru
Big Data.

Conectorul MongoDB este un sistem de fișiere compatibil cu tehnologia Hadoop care


permite accesarea datelor direct de la MongoDB fără copierea acestora in prealabil în HDFS
(Hadoop file System), eliminând astfel nevoia de a muta terabyte de date în întreaga rețea.

Lucrările MapReduce pot transmite interogările ca filtre, evitând astfel nevoia de a scana
colecții întregi și pot profita și de avantajele bogate de indexare ale MongoDB, inclusiv de
indexarea geo-spațială, de căutare text, de matrice. Rezultatele Hadoop pot fi scrise și în
MongoDB, pentru a sprijini procesele operaționale în timp real.

În majoritatea scenariilor, funcționalitatea de agregare încorporată furnizată de


MongoDB este suficientă pentru analizarea datelor. Cu toate acestea, în anumite cazuri, poate
fi necesară o agregare semnificativ mai complexă a datelor. Aici Hadoop poate oferi un cadru
puternic pentru analize complexe. În acest scenariu datele sunt extrase din MongoDB® și
procesate în Hadoop printr-una sau mai multe lucrări MapReduce.
Ieșirea dintr-un task MapReduce poate fi apoi scrisă înapoi la MongoDB pentru interogarea
într-o etapă ulterioară și pentru orice analiză pe bază ad-hoc.
Aplicațiile construite pe MongoDB pot, prin urmare, să utilizeze informațiile din analizele
batch pentru a le prezenta clientului final sau pentru a activa alte caracteristici.
3.3 Arhitectura Hadoop

Bazându-se pe proiectul Apache Hadoop, o serie de companii au construit distribuții


comerciale Hadoop. Printre furnizorii de top se numără partenerii MongoDB Cloudera,
Hortonworks și MapR. Framework-ul Apache Hadoop constă in următoarele module de bază:

- Hadoop Common: utilitățile comune care suportă celelalte module Hadoop


- Sistemul distribuit de fișiere Hadoop (HDFS): Un sistem de fișiere distribuit care
stochează date pe mașini de marfă, oferind o lățime de bandă foarte agregată în grup
- Hadoop YARN: O platformă de gestionare a resurselor responsabilă de gestionarea
resurselor de calcul în clustere și de utilizare a acestora pentru planificarea aplicațiilor
utilizatorilor
- Hadoop MapReduce: un model de programare pentru procesarea de date pe scară
largă

În plus față de aceste module de bază, termenul "Hadoop" a evoluat astfel încât să includă
și alte zeci de instrumente și proiecte independente care pot fi instalate pe sau lângă Hadoop
pentru a simplifica accesul și prelucrarea datelor stocate în clusterul Hadoop:

 Ambari: GUI pentru gestionarea și monitorizarea clusterelor Hadoop


 Deplasare: Infrastructura de depozitare a datelor care oferă acces la date
 Flume: serviciu pentru colectarea datelor din fișierele log în HDFS
 Mahout: Biblioteca de învățare a mașinilor
 Tez: Cadru de programare a fluxurilor de date, construit pe YARN
 Spark: cadrul de calcul al clusterului în memorie utilizat pentru procesarea rapidă
a loturilor, redirecționarea evenimentelor și interogări interactive. Un alt potențial
succesor al MapReduce, dar nu legat de Hadoop. Spark este capabil să folosească
aproape orice sistem de fișiere sau bază de date pentru persistență.

3.4. Modul de functionare Hadoop

Hadoop are la baza joburi, care sunt trimise la un Nod Master în clusterul Hadoop, la
un proces centralizat numit JobTracker. Un aspect notabil al designului Hadoop este faptul că
procesarea este mutată la date mai degrabă decât transferarea datelor către procesare. În
consecință, JobTracker compilează sarcini în sarcini paralele distribuite pe copii ale datelor
stocate în HDFS. JobTracker menține starea sarcinilor și coordonează rezultatul lucrării de la
noduri. Hadoop determină modul în care se distribuie cele mai bune lucrări între resursele din
cluster și modul de abordare a eventualelor defecțiuni ale componentelor sistemului în cazul
în care acestea apar.

O proprietate naturală a sistemului este că lucrarea tinde să fie uniform distribuită,


astfel ca Hadoop menține copii multiple ale datelor pe diferite noduri și fiecare copie a
cererilor de date funcționează pentru a efectua pe baza disponibilității proprii pentru a efectua
sarcini. Copiile cu o capacitate mai mare tind să solicite mai multă muncă de îndeplinit.

3.5 Proprietățile unui sistem Hadoop

HDFS oferă un model de acces pentru date numai pentru scriere, citire o singură dată,
HDFS este optimizat pentru citirea secvențială a fișierelor mari
HDFS menține copii multiple ale datelor pentru toleranța la erori.
HDFS este proiectat pentru o performanță ridicată, mai degrabă decât la o latență redusă.

HDFS nu este bazat pe schemă; pot fi stocate date de orice tip.


4. MapReduce in Hadoop

4.1. Concept

MapReduce este o tehnică de procesare și un model de program pentru calcul


distribuit bazat pe Java. Algoritmul MapReduce conține două sarcini importante, și anume
Map și Reduce. Harta ia un set de date și o convertește într-un alt set de date, în care
elementele individuale sunt împărțite în tupluri (perechi cheie / valoare). În al doilea rând,
reduceți sarcina, care duce ieșirea dintr-o hartă ca intrare și combină aceste tupluri de date
într-un set mai mic de tupluri. După cum implică secvența numelui MapReduce, sarcina de
reducere este efectuată întotdeauna după lucrarea de hartă.
Avantajul major al MapReduce este că este ușor de redimensionat procesarea datelor
pe mai multe noduri de calcul. În cadrul modelului MapReduce, primitivele de procesare a
datelor se numesc cartografi și reductori. Descompunerea unei aplicații de prelucrare a
datelor în cartografi și reductori este uneori netrivială. Dar, odată ce o aplicatie este scrisa în
formularul MapReduce, scalarea aplicației pentru a rula peste sute, mii sau chiar zeci de mii
de mașini într-un grup este doar o schimbare de configurație. Această scalabilitate simplă este
ceea ce a atras mulți programatori să utilizeze modelul MapReduce.

4.2. Algoritmul MapReduce

Programul MapReduce se execută în trei etape, și anume stadiul hărții, treapta de amestecare
și scena redusă.

* Stadiul hărții - lucrarea hărții sau a cartografiei este de a procesa datele de intrare. În
general, datele de intrare sunt sub formă de fișiere sau directoare și sunt stocate în sistemul de
fișiere Hadoop (HDFS). Fișierul de intrare este transmis liniei funcției de mapare. Cartograful
procesează datele și creează câteva fragmente mici de date.

* Reducerea etapei - Funcția Reducer este de a procesa datele care provin de la cartograf.
După procesare, acesta produce un nou set de ieșire, care va fi stocat în HDFS.
În timpul unei sarcini MapReduce, Hadoop trimite sarcinile Map și Reduce la serverele
corespunzătoare din cluster. Cadrul gestionează toate detaliile de transmitere a datelor, cum
ar fi emiterea sarcinilor, verificarea finalizării sarcinilor și copierea datelor din jurul
clusterului între noduri. Majoritatea proceselor de calcul are loc pe noduri cu date pe discuri
locale care reduc traficul de rețea. După finalizarea sarcinilor date, grupul colectează și
reduce datele pentru a forma un rezultat adecvat și îl trimite înapoi la serverul Hadoop.

4.3. Terminologie MapReduce

PayLoad - Aplicațiile implementează funcțiile Map și Reduce și formează nucleul lucrării.


Mapper - Mapper hartă perechile cheii de intrare / valoare într-un set de perechi cheie cheie /
valoare intermediară.
NamedNode - nod care gestionează sistemul de distribuire a fișierelor Hadoop (HDFS).
DataNode - Nodul în care datele sunt prezentate în avans înainte de orice prelucrare.
MasterNode - Nodul în care rulează JobTracker și care acceptă cereri de locuri de muncă de
la clienți.
SlaveNode - Nod unde rulează programul Map și Reduce.
JobTracker - planifică lucrările și urmărește atribuirea lucrărilor la Task tracker.
Task Tracker - Urmări sarcina și raportează starea la JobTracker.
Job - Un program este o execuție a Mapper și Reducer într-un set de date.
Task - Executarea unui Mapper sau a unui Reducer pe o portiune de date.
Task Attempt - O instanță particulară a unei încercări de a executa o sarcină pe un
SlaveNode
Concluzie

Cerințe de calcul și stocare a aplicațiilor, cum ar fi pentru Big Data Analytics,


Business Intelligence și rețele sociale prin seturile de date peta-byte au împins
bazele de date centralizate bazate pe SQL la limitele lor. Acest lucru a dus la dezvoltarea
bazelor de date non-relaționale No-SQ. Cele mai importante utilizări ale bazelor de date
NoSQL sunt: prelucrarea pe scară largă a datelor (prelucrare paralelă pe sisteme distribuite),
embedded IR (informații de bază de la mașină la mașină de căutare & regăsire), analiza
exploratorie privind datele semi-structurate (nivel expert), date privind volumul mare de
stocare (nestructurată, semi-structurată, pachet mic structurat).
Acest studiu prezintă motivația de a furniza un raport independent înțelegerea
punctelor forte și a punctelor slabe ale diferitelor abordări ale bazei de date NoSQL
sprijinirea aplicațiilor care procesează volume imense de date; precum și pentru a oferi o
imagine globală prezentare generală a acestor baze de date non-relaționale NoSQL.

Bazele de date NoSQL se concentrează pe prelucrarea analitică la scară largă de date,


oferind o scalabilitate sporită față de hardware-ul de mărfuri. Sistemele NoSQL prezintă
capacitatea de a stoca și indexa în mod arbitrar seturi mari de date, permițând în același timp
o cantitate mare de cereri ale utilizatorilor.

Rata in crestere a datelor si complexitatea acestora a determinat manipularea datelor


prin intermediul unor tehnologii noi, avand la baza limbajul NoSQL, precum Hadoop, HBase
si Hive, in vederea manipularii Big Data. Integrarea MongoDB cu o astfel de platforma
permite stocarea si recuperarea volumelor mari de date, avand ca si avantaje scalarea
orizontala, acces rapid asupra acestora prin micsorarea timpului de raspuns la query,
disponibilitate mai mare. Hadoop utilizeaza MapReduce pentru a aplica interogari ca filtre,
evitand astfel nevoia de a scana colectii intregi si avand ca efect principal reducerea timpului
de executie si a timpului de raspuns.
Bibliografie

[1] Moniruzzaman, A B M & Hossain, Syed. (2013). NoSQL Database: New Era of
Databases for Big data Analytics - Classification, Characteristics and Comparison.

[2]  Katsov, Ilya. NoSQL Data Modeling Techniques

[3] Apache Hadoop. http://hadoop.apache.org.

[4] Bright Computing. Big Data Deployment


http://support.brightcomputing.com/manuals/7.3/big-data-deployment-manual.pdf

[5] MongoDB for Big Data. https://www.edureka.co/blog/mongodb-the-database-for-big-


data-processing/

[6] NoSQL concepts. https://en.wikipedia.org/wiki/NoSQL

[7] Hadoop vs MongoDB. https://data-flair.training/blogs/hadoop-vs-mongodb/

[8] MongoDB concepts. https://intellipaat.com/blog/what-is-mongodb/

[9] Hadoop Tutorial. https://docs.mongodb.com/ecosystem/tutorial/getting-started-with-


hadoop/

[10] Hadoop si MongoDB. https://www.mongodb.com/hadoop-and-mongodb?jmp=docs

S-ar putea să vă placă și