Înțelegând Hadoop Yarn
On decembrie 9, 2021 by admin
YARN – Yet Another Resource Negotiator, face parte din versiunea Hadoop 2, este una dintre cele două componente majore ale Apache Hadoop (împreună cu HDFS). Acesta planifică utilizarea resurselor clusterului, precum și tratamentele aplicate datelor.

Cel de mai sus este arhitectura de bază a Yarn, unde Resource Manager este componenta de bază a întregii arhitecturi, care este responsabilă pentru gestionarea resurselor, inclusiv a RAM-urilor, a procesoarelor și a altor resurse din întregul cluster. Application Master este responsabil pentru programarea aplicațiilor pe tot parcursul ciclului de viață, Node Manager este responsabil pentru furnizarea și izolarea resurselor pe acest nod.
The Resource Manager: controlează gestionarea resurselor clusterului, de asemenea, ia decizii de alocare. Managerul de resurse are două componente principale: Scheduler și Applications Manager.
- Schedulerul: se numește YarnScheduler, care permite diferite politici de gestionare a constrângerilor, cum ar fi capacitatea, corectitudinea și acordurile de nivel de serviciu.
- Applications Manager: este responsabil pentru menținerea unei liste de aplicații depuse. După ce aplicația este trimisă de către client, managerul de aplicații validează în primul rând dacă cerința de resurse a aplicației pentru masterul său de aplicații poate fi satisfăcută sau nu. în cazul în care sunt disponibile suficiente resurse, acesta transmite aplicația către planificator, în caz contrar aplicația va fi respinsă.
The Node Manager: este responsabil pentru lansarea și gestionarea containerelor pe un nod. Containerele execută sarcinile specificate de AppMaster.
- Containerele: Semnifică o resursă alocată unui ApplicationMaster. ResourceManager este responsabil pentru emiterea de resurse/containere către un ApplicationMaster. și se referă la o colecție de resurse cum ar fi memorie, CPU, disc și IO de rețea.
- Application Master: este o instanță a unei biblioteci specifice cadrului care negociază resursele de la Resource Manager și lucrează cu NodeManager pentru a executa și monitoriza resursele acordate (grupate sub formă de containere) pentru o anumită aplicație. O aplicație poate fi un job mapreduce, un cadru hive…
Etapele de execuție a aplicațiilor cu YARN:

- Un client trimite o aplicație către YARN ResourceManager.
- The ApplicationsManager (în ResourceManager) negociază un container și inițiază instanța ApplicationMaster pentru aplicație.
- AplicațiaMaster se înregistrează la ResourceManager și solicită containere (RAM-uri și CPU-uri).
- AplicațiaMaster comunică cu NodeManagers pentru a lansa containerele care i-au fost acordate.
- AplicațiaMaster gestionează execuția aplicației. În timpul execuției, aplicația furnizează informații privind progresul și starea aplicației către ApplicationMaster. Clientul poate monitoriza starea aplicației prin interogarea ResourceManager sau prin comunicarea directă cu ApplicationMaster.
- ApplicationMaster raportează managerului de resurse finalizarea aplicației.
- ApplicationMaster se deconectează de la ResourceManager, care apoi curăță containerul ApplicationMaster.
Yarn Scheduler :
Schedulerul are o politică care poate fi conectată și care este responsabilă pentru împărțirea resurselor clusterului între diferitele cozi, aplicații etc.
2. FIFO scheduler

Schedulerul FIFO este una dintre primele strategii de implementare utilizate de Hadoop și poate fi interpretată pur și simplu ca o coadă Java. ceea ce înseamnă că nu poate exista decât o singură lucrare în cluster în același timp. Toate aplicațiile sunt executate în ordinea depunerii, iar lucrarea de după finalizarea lucrării anterioare va fi executată în ordinea din coadă.
Acest planificator permite aplicațiilor scurte să se termine în timp rezonabil, fără a înfometa aplicațiile cu durată lungă de viață.
2. Capacity scheduler

The Capacity scheduler este un planificator plug-in pentru Hadoop care permite mai multor chiriași să împartă în siguranță un cluster mare. Resursele sunt alocate aplicațiilor fiecărui chiriaș într-un mod care să utilizeze pe deplin clusterul, guvernat de constrângerile capacităților alocate.
Celele sunt de obicei configurate de administratori pentru a reflecta aspectele economice ale clusterului partajat. Capacity Scheduler suportă cozile ierarhice pentru a se asigura că resursele sunt partajate între subcozile unei organizații înainte ca altor cozi să li se permită să utilizeze resursele libere.
3. Fair scheduler

The FairScheduler este un programator plug-in pentru Hadoop care permite aplicațiilor YARN să împartă în mod echitabil resursele într-un cluster mare. Programarea echitabilă este o metodă de alocare a resurselor către aplicații astfel încât toate aplicațiile să primească, în medie, o parte egală de resurse în timp.
.
Lasă un răspuns