Cum funcționează MapReduce? - Funcționare, faze și beneficii ale MapReduce

Cuprins:

Anonim

Introducere în MapReduce

MapReduce este o componentă de calcul a Cadrului Hadoop pentru scrierea ușoară a aplicațiilor care prelucrează cantități mari de date în paralel și stocate pe grupuri mari de mașini de marfă ieftine, într-o manieră fiabilă și tolerantă la erori. În acest subiect, vom afla despre cum funcționează MapReduce?

MapReduce poate efectua calcule distribuite și paralele folosind seturi de date mari într-un număr mare de noduri. O lucrare MapReduce împarte de obicei seturile de date de intrare și apoi procesează fiecare dintre ele independent de sarcinile Map într-o manieră complet paralelă. Ieșirea este apoi sortată și introdusă pentru a reduce sarcinile. Atât intrarea de lucru cât și ieșirea sunt stocate în sistemele de fișiere. Sarcinile sunt programate și monitorizate de cadru.

Cum funcționează MapReduce?

Arhitectura MapReduce conține două componente de bază ca servicii Daemon responsabile de executarea sarcinilor mapper și reductor, monitorizare și reexecutare a sarcinilor în caz de eșec. În Hadoop 2, Resource Manager și Node Manager sunt serviciile daemon. Când clientul de locuri de muncă trimite un job MapReduce, acești demoni intră în acțiune. De asemenea, sunt responsabili pentru procesarea paralelă și caracteristicile de toleranță la erori ale lucrărilor MapReduce.

În Hadoop 2, mai departe, managementul resurselor și funcționalitățile de planificare a posturilor sau monitorizare sunt segregate de YARN (încă o resursă negociator) ca demoni diferiți. În comparație cu Hadoop 1 cu Job Tracker și Task Tracker, Hadoop 2 conține un Resource Manager global (RM) și Master Masters (AM) pentru fiecare aplicație.

  • Clientul de joburi trimite lucrarea către Managerul de resurse.
  • YARN Resource Manager Managerul este responsabil pentru coordonarea alocării resurselor clusterului între aplicațiile rulante.
  • YARN Node Manager rulează pe fiecare nod și realizează gestionarea resurselor la nivel de nod, coordonând cu managerul Resource. Acesta lansează și monitorizează containerele de calcul de pe mașină de pe cluster.
  • Application Master ajută resursele de la Resource Manager și folosește Node Manager pentru a rula și coordona activitățile MapReduce.

  • HDFS este de obicei utilizat pentru a partaja fișierele de joburi între alte entități.

Fazele modelului MapReduce

Modelul MapReduce are trei faze majore și una opțională:

1. Mapper

  • Este prima fază a programării MapReduce și conține logica de codare a funcției mapper.
  • Logica condiționată se aplică la „n” număr de blocuri de date răspândite pe diverse noduri de date.
  • Funcția Mapper acceptă perechi cheie-valoare ca intrare ca (k, v), unde cheia reprezintă adresa de compensare a fiecărei înregistrări, iar valoarea reprezintă întregul conținut de înregistrare.
  • Ieșirea fazei Mapper va fi, de asemenea, în formatul valorii cheie ca (k ', v').

2. Amestecare și sortare

  • Ieșirea diverselor mappe (k ', v'), apoi trece în faza Shuffle și Sort.
  • Toate valorile duplicate sunt eliminate și diferite valori sunt grupate pe baza tastelor similare.
  • Rezultatele fazei Shuffle și Sort vor fi din nou perechi cheie-valoare ca cheie și tablou de valori (k, v ()).

3. Reducător

  • Ieșirea fazei Shuffle și Sort (k, v ()) va fi intrarea în faza Reducer.
  • În această fază logica funcției reductorului este executată și toate valorile sunt agregate față de tastele corespunzătoare ale acestora.
  • Reducer consolidează rezultatele diferitelor mapări și calculează rezultatul final al lucrării.
  • Ieșirea finală este apoi scrisă într-un singur fișier într-un director de ieșire HDFS.

4. Combină

  • Este o fază opțională în modelul MapReduce.
  • Faza combinator este utilizată pentru a optimiza performanța lucrărilor MapReduce.
  • În această fază, diverse ieșiri ale mapelor sunt reduse local la nivelul nodului.
  • De exemplu, dacă ieșirile de mapare diferite (k, v) provenind de la un singur nod conțin duplicate, atunci acestea sunt combinate, adică reduse local ca o singură ieșire (k, v ()).
  • Această fază face ca faza Shuffle și Sort să funcționeze și mai rapid, permițând astfel performanțe suplimentare în joburile MapReduce.

Toate aceste faze dintr-o lucrare MapReduce pot fi descrise în cele ce urmează:

De exemplu, logica MapReduce pentru a găsi numărarea cuvintelor pe o serie de cuvinte poate fi arătată ca mai jos:

fructe_array = (măr, portocală, măr, guavă, struguri, portocale, măr)

  • Faza Mapper tokenizează tabloul de introducere a cuvintelor în „n” număr de cuvinte pentru a da ieșirea ca (k, v). De exemplu, luați în considerare „mărul”. Producția de mapare va fi (măr, 1), (măr, 1), (măr, 1).
  • Shuffle and Sort acceptă ieșirea mapper (k, v) și grupează toate valorile în funcție de tastele lor ca (k, v ()). adică (măr, (1, 1, 1)).
  • Faza Reducer acceptă ieșirea Shuffle și sortare și oferă totalul valorilor (măr, (1 + 1 + 1)), corespunzătoare tastelor lor. adică (măr, 3).

Execuția speculativă a lucrărilor MapReduce

Viteza MapReduce este dominată de cea mai lentă sarcină. Deci, pentru a crește viteza, un mapper nou va funcționa în același set de date în același timp. Oricare finalizează sarcina mai întâi este considerată ieșirea finală, iar cealaltă este ucisă. Este o tehnică de optimizare.

Beneficiile MapReduce

Aici menționează Beneficiile MapReduce mai jos

1. Toleranță la erori

  • În mijlocul unei lucrări de reducere a hărții, dacă o mașină care transportă câteva blocuri de date nu reușește arhitectura, se va defecta.
  • Acesta examinează copii reproduse ale blocurilor din mașini alternative pentru prelucrare ulterioară.

2. Reziliență

  • Fiecare nod își actualizează periodic starea în nodul principal.
  • Dacă un nod sclav nu trimite notificarea sa, nodul principal reasignează sarcina în curs de executare a acelui nod sclav la alte noduri disponibile din cluster.

3. Rapid

  • Prelucrarea datelor este rapidă, deoarece MapReduce folosește HDFS ca sistem de stocare.
  • MapReduce durează câteva minute pentru a procesa terabyte de volume mari nestructurate de date.

4. Prelucrare paralelă

  • Sarcinile MapReduce procesează mai multe bucăți ale acelorași set de date în paralel prin împărțirea sarcinilor.
  • Acest lucru oferă avantajul finalizării sarcinii în mai puțin timp.

5. Disponibilitate

  • Mai multe replici ale acelorași date sunt trimise la numeroase noduri din rețea.
  • Astfel, în caz de defecțiune, alte copii sunt ușor disponibile pentru prelucrare fără nicio pierdere.

6. Scalabilitate

  • Hadoop este o platformă extrem de scalabilă.
  • Sistemele tradiționale RDBMS nu pot fi scalabile în funcție de creșterea volumului de date.
  • MapReduce vă permite să rulați aplicații dintr-un număr imens de noduri, folosind terabyte și petabytes de date.

7. rentabil

  • Funcția de extindere a scării Hadoop împreună cu programarea MapReduce vă permite să stocați și să procesați datele într-un mod foarte eficient și accesibil.
  • Economiile de costuri pot fi masive ca cifre de sute pentru terabyte de date.

Concluzie - Cum funcționează MapReduce

Datele moderne se îndreaptă mai mult către tipul nestructurat și opțiunea uriașă, convențională de prelucrare a datelor, cum ar fi RDBMS, este chiar mai dificilă, consumă timp și costisitoare. Dar Programarea MapReduce a lui Hadoop este mult mai eficientă, mai sigură și mai rapidă în procesarea seturilor de date mari de chiar terabyți sau petabytes.

Articole recomandate

Acesta este un ghid al modului în care funcționează MapReduce. Aici discutăm Fazele modelului MapReduce cu Beneficii și Cum funcționează. De asemenea, puteți arunca o privire la următoarele articole pentru a afla mai multe -

  1. Componentele ecosistemului Hadoop
  2. Algoritmi MapReduce
  3. Ce este MapReduce în Hadoop?
  4. Întrebări la interviu MapReduce