Video: la intrarea în stația de distribuție RUSE 2024
Modul HDFS a fost configurat, acesta descompune fișiere foarte mari în blocuri mari (de exemplu, 128 MB) și stochează trei copii ale acestor blocuri pe diferite noduri din cluster HDFS nu are cunoștință de conținutul acestor fișiere
În YARN, atunci când este pornită o sarcină MapReduce, Resource Manager (managementul resurselor de cluster și facilitatea de planificare a locurilor de muncă) creează un daemon de aplicație care să aibă grijă de ciclul de viață al serviciului (în Hadoop 1, JobTracker monitorizează lucrările individuale, precum și gestionează programarea locurilor de muncă și gestionarea resurselor în cluster.)
local - pe nodul slave unde este stocat. Înainte de a analiza modul în care sunt procesate blocurile de date, trebuie să vă uitați mai atent la modul în care Hadoop stochează datele. În Hadoop, fișierele sunt compuse din înregistrări individuale, care sunt prelucrate, în cele din urmă, una câte una, prin sarcini cartografice.
De exemplu, setul de date eșantion conține informații despre zborurile efectuate în Statele Unite între 1987 și 2008.
Aveți un fișier mare pentru fiecare an, iar în fiecare fișier, fiecare linie individuală reprezintă un singur zbor. Cu alte cuvinte, o linie reprezintă o înregistrare. Acum, rețineți că dimensiunea blocului pentru clusterul Hadoop este de 64MB, ceea ce înseamnă că fișierele de date luminoase sunt rupte în bucăți de exact 64MB.
Vedeți problema? Dacă fiecare sarcină a hărții procesează toate înregistrările într-un bloc de date specific, ce se întâmplă cu acele înregistrări care se întind în limitele blocurilor? Blocurile de fișiere sunt exact 64MB (sau orice ați setat dimensiunea blocului care urmează să fie) și deoarece HDFS nu are nicio concepție despre ceea ce se află în interiorul blocurilor de fișiere, nu poate să măsoare când o înregistrare s-ar putea vărsa într-un alt bloc.
Pentru a rezolva această problemă, Hadoop folosește o reprezentare logică a datelor stocate în blocuri de fișiere, cunoscute sub numele de
splituri de intrare . Atunci când un client de locație MapReduce calculează divizările de intrare, acesta indică unde începe prima înregistrare integrală într-un bloc și unde se termină ultima înregistrare din bloc. În cazurile în care ultima înregistrare dintr-un bloc este incompletă, diviziunea de intrare include informații despre locația următorului bloc și octetul offset al datelor necesare pentru finalizarea înregistrării.
Figura arată această relație între blocurile de date și divizările de intrare.
Puteți configura daemonul Master cerere (sau JobTracker, dacă sunteți în Hadoop 1) pentru a calcula divizările de intrare în loc de clientul de lucru, ceea ce ar fi mai rapid pentru procesarea unui număr mare de blocuri de date.
Prelucrarea datelor MapReduce este condusă de acest concept de diviziuni de intrare. Numărul de divizări de intrare care sunt calculate pentru o anumită aplicație determină numărul de sarcini cartografiere. Fiecare dintre aceste sarcini mapper este atribuită, acolo unde este posibil, unui nod secundar în care este stocată diviziunea de intrare. Resurse Manager (sau JobTracker, dacă sunteți în Hadoop 1) face tot ce este mai bun pentru a vă asigura că împărțirile de intrare sunt procesate local.