Procesarea datelor în Hadoop: Componentele Hadoop explicate [2022]

Publicat: 2021-01-03

Odată cu creșterea exponențială a World Wide Web de-a lungul anilor, datele generate au crescut și ele exponențial. Acest lucru a dus la crearea unei cantități masive de date și a fost dificil de procesat și stocat această cantitate uriașă de date cu sistemele tradiționale de baze de date relaționale.

De asemenea, datele create nu au fost doar în formă structurată, ci și în format nestructurat, cum ar fi videoclipuri, imagini etc. Acest tip de date nu pot fi procesate de baze de date relaționale. Pentru a contracara aceste probleme, Hadoop a apărut.

Înainte de a ne aprofunda în procesarea datelor Hadoop, să avem o privire de ansamblu asupra Hadoop și a componentelor sale. Apache Hadoop este un cadru care permite stocarea și procesarea unor cantități uriașe de date într-un mod rapid și eficient. Poate fi folosit pentru a stoca cantități uriașe de date structurate și nestructurate. Aflați mai multe despre ecosistemul și componentele Hadoop.

Elementele de bază ale Hadoop sunt următoarele: –

Cuprins

Blocurile de construcție ale Hadoop

1. HDFS (Stratul de stocare)

După cum sugerează și numele, Hadoop Distributed File System este stratul de stocare al Hadoop și este responsabil pentru stocarea datelor într-un mediu distribuit (configurație master și slave). Împarte datele în mai multe blocuri de date și le stochează în diferite noduri de date. Aceste blocuri de date sunt, de asemenea, replicate în diferite noduri de date pentru a preveni pierderea datelor atunci când unul dintre noduri se defectează.

Are două procese principale care rulează pentru prelucrarea datelor: –

A. NameNode

Acesta rulează pe mașina principală. Acesta salvează locațiile tuturor fișierelor stocate în sistemul de fișiere și urmărește unde se află datele în cluster, adică stochează metadatele fișierelor. Când aplicațiile client doresc să efectueze anumite operațiuni asupra datelor, acestea interacționează cu NameNode. Când NameNode primește cererea, acesta răspunde prin returnarea unei liste de servere Data Node unde se află datele necesare.

b. DataNode

Acest proces rulează pe fiecare mașină slave. Una dintre funcționalitățile sale este de a stoca fiecare bloc de date HDFS într-un fișier separat în sistemul său de fișiere local. Cu alte cuvinte, conține datele reale sub formă de blocuri. Trimite periodic semnale de bătăi ale inimii și așteaptă cererea de la NameNode pentru a accesa datele.

2. MapReduce (stratul de procesare)

Este o tehnică de programare bazată pe Java care este utilizată pe lângă cadrul Hadoop pentru o procesare mai rapidă a unor cantități uriașe de date. Procesează aceste date uriașe într-un mediu distribuit utilizând multe noduri de date care permit procesarea paralelă și executarea mai rapidă a operațiunilor într-un mod tolerant la erori.

O lucrare MapReduce împarte setul de date în mai multe bucăți de date, care sunt ulterior convertite în perechi cheie-valoare pentru a fi procesate de cartografi. Formatul brut al datelor poate să nu fie adecvat pentru prelucrare. Astfel, datele de intrare compatibile cu faza hărții sunt generate folosind funcția InputSplit și RecordReader.

InputSplit este reprezentarea logică a datelor care urmează să fie procesate de un mapator individual. RecordReader convertește aceste împărțiri în înregistrări care iau forma unor perechi cheie-valoare. Practic convertește reprezentarea orientată pe octeți a intrării într-o reprezentare orientată spre înregistrare.

Aceste înregistrări sunt apoi transmise cartografilor pentru prelucrarea ulterioară a datelor. Joburile MapReduce constau în principal din trei faze și anume faza Hartă, faza de amestecare și faza de reducere.

A. Faza de hartă

Este prima etapă a procesării datelor. Sarcina principală în faza hărții este de a procesa fiecare intrare din RecordReader și de a o converti în tupluri intermediare (perechi cheie-valoare). Această ieșire intermediară este stocată pe discul local de către cartografi.

Valorile acestor perechi cheie-valoare pot diferi de cele primite ca intrare de la RecordReader. Faza hărții poate conține, de asemenea, combinatoare care sunt denumite și reductoare locale. Ei efectuează agregări asupra datelor, dar numai în sfera unui singur mapper.

Deoarece calculele sunt efectuate pe diferite noduri de date, este esențial ca toate valorile asociate aceleiași chei să fie îmbinate într-un singur reductor. Această sarcină este efectuată de către partiționar. Îndeplinește o funcție hash peste aceste perechi cheie-valoare pentru a le îmbina.

De asemenea, asigură că toate sarcinile sunt împărțite uniform la reductoare. În general, partiționerii intră în imagine atunci când lucrăm cu mai multe reductoare.

b. Faza de amestecare și sortare

Această fază transferă ieșirea intermediară obținută de la mapper la reductoare. Acest proces se numește amestecare. Ieșirea de la mapper este, de asemenea, sortată înainte de a o transfera la reductoare. Sortarea se face pe baza cheilor din perechile cheie-valoare. Ajută reductorii să efectueze calcule pe date chiar înainte ca datele să fie primite și în cele din urmă ajută la reducerea timpului necesar pentru calcule.

Pe măsură ce cheile sunt sortate, ori de câte ori reductorul primește o cheie diferită ca intrare, începe să efectueze sarcinile de reducere pe datele primite anterior.

c. Reduceți faza

Ieșirea fazei hărții servește ca intrare pentru faza de reducere. Ea ia aceste perechi cheie-valoare și le aplică funcția de reducere pentru a produce rezultatul dorit. Cheile și valorile asociate cheii sunt transmise funcției de reducere pentru a efectua anumite operații.

Putem filtra datele sau le putem combina pentru a obține rezultatul agregat. După execuția funcției reducere, aceasta poate crea zero sau mai multe perechi cheie-valoare. Acest rezultat este scris înapoi în sistemul de fișiere distribuit Hadoop.

3. YARN (Stratul de management)

Yet Another Resource Navigator este componenta de gestionare a resurselor a Hadoop. Există procese de fundal care rulează la fiecare nod (Node Manager pe mașinile slave și Resource Manager pe nodul master) care comunică între ele pentru alocarea resurselor. Managerul de resurse este piesa centrală a stratului YARN care gestionează resursele dintre toate aplicațiile și transmite cererile către Node Manager.

Node Manager monitorizează utilizarea resurselor, cum ar fi memoria, procesorul și discul mașinii, și transmite același lucru către Managerul de resurse. Este instalat pe fiecare nod de date și este responsabil pentru executarea sarcinilor pe nodurile de date.

Trebuie citit: Top 10 instrumente Hadoop pentru inginerii de date mari

Concluzie

Întregul flux de lucru pentru procesarea datelor pe Hadoop poate fi rezumat după cum urmează: –

  • InputSplit ; împarte logic datele care se află pe HDFS în mai multe blocuri de date. Decizia privind modul de împărțire a datelor este luată de Inputformat .
  • Datele sunt convertite în perechi cheie-valoare de RecordReader. RecordReader convertește datele orientate pe octeți în date orientate spre înregistrare. Aceste date servesc ca intrare pentru cartografiere.
  • Mapper-ul, care nu este altceva decât o funcție definită de utilizator, procesează aceste perechi cheie-valoare și generează perechi cheie-valoare intermediare pentru procesare ulterioară.
  • Aceste perechi sunt reduse local (în sfera de aplicare a unui mapator) de către combinatoare pentru a reduce cantitatea de date care trebuie transferată de la mapator la reductor.
  • Partitioner se asigură că toate valorile cu aceeași cheie sunt îmbinate în același reductor și că sarcinile sunt distribuite uniform între reductoare.
  • Aceste perechi cheie-valoare intermediare sunt apoi amestecate la reductoare și sortate pe baza cheilor. Acest rezultat este transmis reductoarelor ca intrare.
  • Funcția de reducere adună valorile pentru fiecare cheie, iar rezultatul este stocat înapoi în HDFS folosind RecordWriter. Înainte de a le scrie înapoi în HDFS, formatul în care ar trebui să fie scrise datele este decis de Outputformat .

Dacă sunteți interesat să aflați mai multe despre Big Data, consultați programul nostru PG Diploma în Dezvoltare Software Specializare în Big Data, care este conceput pentru profesioniști care lucrează și oferă peste 7 studii de caz și proiecte, acoperă 14 limbaje și instrumente de programare, practică practică. ateliere de lucru, peste 400 de ore de învățare riguroasă și asistență pentru plasarea unui loc de muncă cu firme de top.

Învață cursuri de dezvoltare software online de la cele mai bune universități din lume. Câștigați programe Executive PG, programe avansate de certificat sau programe de master pentru a vă accelera cariera.

Stăpânește Tehnologia Viitorului - Big Data

Peste 400 de ORE DE ÎNVĂȚARE. 14 LIMBAJE ȘI INSTRUMENTE. STATUT DE ALUNE IIIT-B.
Program de certificat avansat în Big Data de la IIIT Bangalore