Ce este Hadoop Yarn Architecture și componentele sale

Publicat: 2020-02-10

Cuprins

Introducere Hadoop YARN

YARN este componenta principală a Hadoop v2.0. YARN ajută la deschiderea Hadoop, permițând procesarea și rularea datelor pentru procesarea loturilor, procesarea fluxului, procesarea interactivă și procesarea graficelor care sunt stocate în HDFS. În acest fel, ajută la rularea diferitelor tipuri de aplicații distribuite, altele decât MapReduce.

În arhitectura YARN, stratul de procesare este separat de stratul de gestionare a resurselor. Pentru a crea o împărțire între managerul de aplicații și managerul de resurse a fost responsabilitatea Job tracker în versiunea Hadoop 1.0. YARN permite ca datele stocate în HDFS (Hadoop Distributed File System) să fie procesate și rulate de diferite motoare de procesare a datelor, cum ar fi procesarea loturilor, procesarea fluxului, procesarea interactivă, procesarea graficelor și multe altele. Astfel, eficiența sistemului este crescută odată cu utilizarea YARN. Procesarea aplicației este programată în YARN prin diferitele sale componente. Multe tipuri diferite de resurse sunt, de asemenea, alocate progresiv pentru o utilizare optimă. YARN ajută foarte mult la utilizarea corectă a resurselor disponibile, ceea ce este foarte necesar pentru procesarea unui volum mare de date.

De ce YARN?

MapReduce îndeplinește funcții de gestionare și procesare a resurselor. Hadoop v1.0 este cunoscut și ca MapReduce Version 1 (MRV1). A existat un singur master pentru Job Tracker.

Nu veți crede cum acest program a schimbat cariera studenților

În versiunea anterioară a Hadoop, aceasta este Hadoop versiunea 1.0, cunoscută și sub numele de MapReduce versiunea 1 (MRV1), utilizată pentru a îndeplini atât sarcina de gestionare a proceselor, cât și a resurselor de la sine. Are un modul de urmărire a locurilor de muncă care este responsabil pentru tot. Prin urmare, este singurul master care alocă resurse pentru aplicații, efectuează programarea pentru cerere și, de asemenea, monitorizează lucrările de procesare în sistem. Hadoop versiunea 1.0 reduce sarcinile și atribuie hărți pe mai multe sub-procese numite Task Trackers. Task Tracker raportează, de asemenea, progresul proceselor în mod periodic. Dar problema principală nu este aceea, problema este proiectarea unui singur master pentru toți, ceea ce duce la o problemă de blocaj. De asemenea, utilizarea resurselor de calcul a fost ineficientă. Astfel, scalabilitatea a devenit o problemă cu această versiune de Hadoop. Dar, din partea bună, această problemă este rezolvată de YARN, o componentă de bază vitală a succesorului său Hadoop versiunea 2.0, care a fost introdusă în anul 2012 de Yahoo și Hortonworks. Ideea de bază din spatele acestei scutiri este separarea MapReduce de Managementul resurselor și de planificarea lucrărilor în loc de un singur master. Astfel, YARN este acum responsabil pentru programarea locurilor de muncă și managementul resurselor.

În Hadoop 2.0, conceptul de Application Master și Resource Manager a fost introdus de YARN. În clusterul Hadoop, utilizarea resurselor este monitorizată de Managerul de resurse.

Există câteva caracteristici ale YARN din cauza cărora a devenit foarte faimos, care sunt:

  1. Multi-tenancy: YARN a permis accesul la mai multe motoare de procesare a datelor, cum ar fi motorul de procesare batch, motorul de procesare a fluxului, motorul de procesare interactiv, motorul de procesare a graficelor și multe altele. Acest lucru a oferit companiei beneficiul multi-chiriei.
  2. Utilizarea clusterelor: Clusterele sunt utilizate într-un mod optimizat, deoarece clusterele sunt utilizate dinamic în Hadoop cu ajutorul YARN.
  3. Compatibilitate : YARN este compatibil și cu prima versiune de Hadoop, adică Hadoop 1.0, deoarece folosește aplicațiile existente de reducere a hărților. Deci YARN poate fi folosit și cu Hadoop 1.0.
  4. Scalabilitate : Mii de clustere și noduri sunt permise de planificatorul din Managerul de resurse al YARN să fie gestionate și extinse de Hadoop.

Componentele YARN

  • Container:

În Container, se pot găsi resurse fizice precum un disc pe un singur nod, nuclee CPU, RAM. Contextul de lansare a containerelor (CLC) este utilizat pentru a invoca containere. Date despre dependențe, jetoane de securitate, variabile de mediu care sunt menținute ca o înregistrare cunoscută sub numele de Container Launch Context (CLC).

  1. Pe o anumită gazdă, o aplicație poate folosi doar memoria specificată de la CPU și memorie. Această cantitate specificată de memorie poate fi utilizată numai după ce permisiunea a fost acordată de Container.
  2. Contextul de lansare a containerelor este utilizat pentru a gestiona containerele YARN. Se mai numește și Container LifeCycle (CLC). Comenzile necesare pentru crearea procesului sunt stocate în această înregistrare. De asemenea, salvează sarcina utilă pentru serviciile Node Manager, jetoane de securitate, dependențe, harta variabilelor de mediu.
  • Master aplicație:

Într-un cadru, atunci când se depune un singur loc de muncă, se numește cerere. Monitorizarea progresului aplicației, urmărirea stării aplicației, negocierea resurselor cu managerul de resurse este responsabilitatea managerului aplicației. Toate cerințele unei aplicații pentru a rula se realizează prin trimiterea Container Launch Context (CLC). Masterul aplicației postează contextul de lansare a containerului (CLC) solicitând containerul de la managerul de noduri. Din când în când, managerul de resurse primește un raport de sănătate după ce aplicația a început.

  • Manager de noduri:

Managerul de noduri are grijă de nodurile individuale din clusterul Hadoop și, de asemenea, gestionează containerele aferente fiecărui nod specific. Este înregistrat la Resource Manager și trimite starea de sănătate a fiecărui nod către Resource Manager, indicând dacă procesul nodului a terminat de lucrat cu resursa. Scopul său principal este de a gestiona fiecare container de nod specific care este atribuit de managerul de resurse. Managerul de noduri creează, de asemenea, un proces container atunci când este solicitat de masterul aplicației. Când aplicația master trimite și întreabă Containerul atașat de la managerul de noduri printr-un CLC (Container Launch Context) care include tot ce trebuie să execute o aplicație. Apoi managerul de noduri creează containerul de proces solicitat și îl rulează. Managerul de noduri este, de asemenea, responsabil pentru monitorizarea utilizării resurselor de către container individual și raportarea acesteia către managerul de resurse. Astfel, managerul de noduri și managerul de resurse colaborează pentru a comunica între noduri și pentru a gestiona utilizarea resurselor de către fiecare nod din cluster. De asemenea, poate ucide containere dacă este indicat de managerul de resurse. În cele din urmă, managerii de noduri înregistrează totul prin sistemul de gestionare a jurnalelor din el.

Un anumit nod este îngrijit de Managerul de noduri. Node Manager gestionează fluxul de lucru și aplicarea nodului. Gestionarea jurnalelor este efectuată, iar Node Manager monitorizează utilizarea resurselor. Managerul de resurse oferă managerului de noduri instrucțiuni pentru a ucide un container. Masterul aplicației solicită managerului Node să înceapă procesul containerului. Crearea unui proces container este responsabilitatea Node Manager.

  • Manager de resurse:

Gestionarea resurselor și alocarea tuturor aplicațiilor este responsabilitatea Managerului de resurse și este demonul principal al YARN. Solicitările primite de managerul de resurse sunt transmise managerului de noduri corespunzător. Conform aplicației, resursele sunt alocate de către managerul de resurse pentru finalizare.

  1. Utilizarea Clusterului este optimizată, cum ar fi menținerea activă a utilizării tuturor resurselor împotriva diferitelor tipuri de limitări, cum ar fi SLA, corectitudine și garanții de capacitate.
  2. Managerul de resurse face alocarea resurselor disponibile.
  3. Managerul de resurse arbitrează resursele clusterului.
  4. Procesarea efectivă a cererilor are loc în noduri, iar managerii nodurilor o gestionează. Ori de câte ori este primită orice cerere de procesare, acesta transferă cererile în părți către managerii nodurilor corespunzători.
  5. Managerul de resurse este cea mai înaltă autoritate pentru alocarea resurselor.

Există două componente principale ale Managerului de resurse, care sunt: ​​–

  • Manager de aplicatii -

Managerul de aplicații este responsabil pentru gestionarea unui set de sarcini sau aplicații trimise. Mai întâi verifică și validează specificațiile aplicației depuse și poate respinge cererile dacă nu există suficiente resurse disponibile. De asemenea, se asigură că nu există nicio altă aplicație cu același ID care este deja trimisă și care poate fi cauzată de un client eronat sau rău intenționat. Apoi, trimite cererea depusă după validare către programator. În cele din urmă, observă, de asemenea, stările aplicațiilor și gestionează aplicațiile terminate pentru a salva memoria unor Resource Manager. Managerul de aplicații păstrează un cache al aplicațiilor terminate și mută aplicațiile vechi, terminate, pentru a găzdui spațiu pentru aplicațiile proaspăt trimise.

  • programator -

Pe baza disponibilității resurselor și a alocării aplicației, Scheduler programează sarcinile. Nu există nicio altă sarcină efectuată de planificator, cum ar fi nicio repornire a jobului după eșec, urmărire sau monitorizare a sarcinilor. Diferitele tipuri de pluginuri de planificare sunt Fair Scheduler și Capacity Scheduler, care sunt acceptate de planificatorul YARN pentru partiția resurselor cluster.

Etapele fluxului de lucru al aplicației în Hadoop YARN

O cerere este depusă de către client.

  1. Managerul de aplicații este pornit prin alocarea Containerului de către Managerul de resurse.
  2. Managerul de resurse și Managerul de aplicații se înregistrează unul cu celălalt.
  3. Managerul de aplicații face negocierea Containerului cu Managerul de resurse.
  4. Managerul de noduri lansează Containerul după ce a fost notificat de către Managerul de aplicații.
  5. Executarea codului aplicației se face în Container.
  6. Managerul de aplicații sau Managerul de resurse monitorizează starea aplicației după ce a fost contactat de client.
  7. Anularea înregistrării aplicației Manager se face cu Resource Manager după finalizarea procesului.

Încheierea

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 limbi și instrumente. Statutul de absolvenți IIIT-B.
Program de certificat avansat în Big Data de la IIIT Bangalore