Cuprins:
- Obțineți datele gata pregătite
- Lăsați harta mare de date să începă
- Reduceți și combinați pentru date mari
Video: Joel Selanikio: The surprising seeds of a big-data revolution in healthcare 2024
Pentru a înțelege pe deplin capabilitățile Hadoop MapReduce, este important să se facă diferența între MapReduce (algoritmul) implementarea MapReduce. Hadoop MapReduce este o implementare a algoritmului dezvoltat și menținut de proiectul Apache Hadoop.
Este util să te gândești la această implementare ca pe un motor MapReduce, pentru că exact așa funcționează. Oferiți o intrare (combustibil), motorul transformă intrarea în ieșire rapid și eficient și obțineți răspunsurile de care aveți nevoie.
Hadoop MapReduce include mai multe etape, fiecare cu un set important de operațiuni care ajută la atingerea obiectivului dvs. de a obține răspunsurile de care aveți nevoie de la date mari. Procesul începe cu o cerere a utilizatorului de a executa un program MapReduce și continuă până când rezultatele sunt scrise în HDFS.
HDFS și MapReduce își desfășoară activitatea pe noduri dintr-un cluster găzduit pe rafturi de servere de mărfuri. Pentru a simplifica discuția, diagrama arată numai două noduri.
Obțineți datele gata pregătite
Atunci când un client solicită executarea unui program MapReduce, primul pas este să localizați și să citiți fișierul de intrare care conține datele brute. Formatul de fișier este complet arbitrar, dar datele trebuie convertite în ceva ce poate procesa programul. Aceasta este funcția InputFormat și RecordReader. InputFormat decide modul în care fișierul va fi fragmentat în bucăți mai mici pentru procesare utilizând o funcție numită InputSplit.
Apoi atribuie un recordreader pentru a transforma datele brute pentru prelucrare de către hartă. Mai multe tipuri de înregistratori de înregistrări sunt livrate împreună cu Hadoop, oferind o mare varietate de opțiuni de conversie. Această caracteristică este una dintre modalitățile prin care Hadoop gestionează o mare varietate de tipuri de date găsite în probleme de date mari.
Lăsați harta mare de date să începă
Datele dvs. sunt acum într-o formă acceptabilă pentru a fi mapate. Pentru fiecare pereche de intrări, este apelată o instanță distinctă de hartă pentru procesarea datelor. Dar ce face cu ieșirea prelucrată și cum puteți să le urmăriți?
Harta are două capacități suplimentare pentru a răspunde la întrebări. Deoarece harta și reducerea necesității de a lucra împreună pentru procesarea datelor dvs., programul trebuie să colecteze rezultatele de la cartografii independente și să le transmită reductorilor. Această sarcină este realizată de un OutputCollector. O funcție Reporter furnizează, de asemenea, informații colectate din sarcinile de hartă, astfel încât să știți când sau în cazul în care sarcinile hărții sunt complete.
Toate aceste lucrări sunt efectuate simultan pe mai multe noduri din clusterul Hadoop.S-ar putea să aveți cazuri în care ieșirea din anumite procese de cartografiere trebuie acumulată înainte ca reductorii să poată începe. Sau, unele dintre rezultatele intermediare pot fi procesate înainte de reducere.
În plus, o parte din această ieșire poate fi pe un nod diferit de nodul în care se vor executa reductoarele pentru ieșirea specifică. Colectarea și amestecarea rezultatelor intermediare sunt efectuate de un partiționator și un fel. Sarcinile hărții vor furniza rezultatele unei anumite partiții ca intrări în sarcinile de reducere.
După ce toate sarcinile de hartă sunt complete, rezultatele intermediare sunt adunate în partiție și apare o amestecare, sortarea ieșirii pentru o prelucrare optimă prin reducere.
Reduceți și combinați pentru date mari
Pentru fiecare pereche de ieșiri, reduceți este chemat să-și îndeplinească sarcina. În mod asemănător cu hărțile, reducerea își adună rezultatele în timp ce toate sarcinile se procesează. Reducerea nu poate începe până când nu se face maparea. Producția de reducere este, de asemenea, o cheie și o valoare. În timp ce acest lucru este necesar pentru a reduce pentru a-și face munca, este posibil să nu fie cel mai eficient format de ieșire pentru aplicația dvs.
Hadoop oferă o caracteristică OutputFormat și funcționează foarte mult ca InputFormat. OutputFormat ia perechea cheie-valoare și organizează ieșirea pentru scrierea în HDFS. Ultima sarcină este de a scrie datele la HDFS. Acest lucru este realizat de RecordWriter, și se execută similar cu RecordReader, cu excepția invers. Este nevoie de date OutputFormat și o scrie în HDFS în forma necesară pentru cerințele programului.
Coordonarea tuturor acestor activități a fost gestionată în versiuni anterioare ale programului Hadoop de către un programator de locuri de muncă. Acest planificator a fost rudimentar, iar odată cu schimbarea și creșterea mixului de locuri de muncă, era clar că era nevoie de o abordare diferită. Deficitul primar al planificatorului vechi a fost lipsa gestionării resurselor. Cea mai recentă versiune de Hadoop are această nouă capacitate.
Hadoop MapReduce este inima sistemului Hadoop. Acesta oferă toate capabilitățile de care aveți nevoie pentru a rupe datele mari în bucăți ușor de gestionat, procesați datele în paralel pe clusterul distribuit și apoi faceți datele disponibile pentru consumul utilizatorilor sau procesarea suplimentară. Și face toate aceste lucruri într-o manieră foarte rezistentă, tolerantă la erori. Acesta este doar începutul.