Forståelse af Hadoop Yarn
On december 9, 2021 by adminYARN – Yet Another Resource Negotiator, er en del af Hadoop 2-versionen, og er en af de to hovedkomponenter i Apache Hadoop (sammen med HDFS). Den planlægger brugen af klyngeressourcerne samt de behandlinger, der anvendes på dataene.
Ovenfor er den grundlæggende arkitektur for Yarn, hvor Resource Manager er kernekomponenten i hele arkitekturen, som er ansvarlig for forvaltningen af ressourcer, herunder RAM’er, CPU’er og andre ressourcer i hele klyngen. Application Master er ansvarlig for programplanlægning i hele livscyklussen, Node Manager er ansvarlig for forsyning og isolering af ressourcer på denne knude.
Ressource Manager: Den styrer ressourceforvaltningen af klyngen, træffer også tildelingsbeslutninger. Ressourceforvalteren har to hovedkomponenter: Scheduler og Applications Manager.
- Scheduleren: kaldes YarnScheduler, som giver mulighed for forskellige politikker til håndtering af begrænsninger som f.eks. kapacitet, retfærdighed og serviceniveauaftaler.
- Applications Manager: er ansvarlig for at vedligeholde en liste over indsendte applikationer. Når klienten har indsendt en ansøgning, validerer Application Manager først, om ansøgningens krav om ressourcer til dens applikationsmaster kan opfyldes eller ej. Hvis der er tilstrækkelige ressourcer til rådighed, videresender den ansøgningen til scheduler, ellers afvises ansøgningen.
The Node Manager: er ansvarlig for at lancere og administrere containere på en node. Containere udfører opgaver som angivet af AppMaster.
- Containeren: Betyder en tildelt ressource til en ApplicationMaster. ResourceManager er ansvarlig for at udstede ressource/container til en ApplicationMaster. og henviser til en samling af ressourcer såsom hukommelse, CPU, disk og netværks-IO.
- ApplicationMaster: Er en instans af et rammespecifikt bibliotek, der forhandler ressourcer fra ResourceManager og arbejder sammen med NodeManager for at udføre og overvåge de tildelte ressourcer (bundtet som containere) for et givet program. En applikation kan være mapreduce job, hive framework…
Strækninger for eksekvering af applikationer med YARN:
- En klient indsender en applikation til YARN ResourceManager.
- ApplicationManager (i ResourceManager) forhandler en container og starter ApplicationMaster-instansen for ansøgningen.
- ApplicationMaster registrerer sig hos ResourceManager og anmoder om containere(RAM’er og CPU’er).
- ApplicationMaster kommunikerer med NodeManagers for at starte de containere, den har fået tildelt.
- ApplicationMaster styrer udførelsen af applikationen. Under udførelsen leverer programmet fremskridt og statusoplysninger til ApplicationMaster. Klienten kan overvåge programmets status ved at spørge ResourceManager eller ved at kommunikere direkte med ApplicationMaster.
- ApplicationMaster rapporterer afslutningen af programmet til ResourceManager.
- ApplicationMaster afregistrerer sig hos ResourceManager, som derefter rydder op i ApplicationMaster-containeren.
Yarn Scheduler :
Skemalæggeren har en plug-in-politik, som er ansvarlig for at opdele klyngeressourcerne mellem de forskellige køer, applikationer osv.
2. FIFO scheduler
FIFO scheduler er en af de tidligste implementeringsstrategier, der anvendes af Hadoop, og kan ganske enkelt fortolkes som en Java-kø. hvilket betyder, at der kun kan være ét job i klyngen på samme tid. Alle programmer udføres i den rækkefølge, de er indsendt, og det job, der følger efter afslutningen af det foregående job, udføres i køens rækkefølge.
Denne scheduler lader korte programmer afslutte på rimelig tid, mens den ikke udsulter programmer med lang levetid.
2. Kapacitets scheduler
Kapacitets scheduler er en pluggable scheduler til Hadoop, der gør det muligt for flere lejere at dele en stor klynge på sikker vis. Ressourcerne allokeres til hver lejers programmer på en måde, der udnytter klyngen fuldt ud, styret af begrænsningerne i de allokerede kapaciteter.
Køer oprettes typisk af administratorer for at afspejle økonomien i den delte klynge. Kapacitetsskemalæggeren understøtter hierarkiske køer for at sikre, at ressourcerne deles mellem underkøer i en organisation, før andre køer får lov til at bruge ledige ressourcer.
3. Fair scheduler
FairScheduler er en pluggable scheduler til Hadoop, der gør det muligt for YARN-programmer at dele ressourcerne i en stor klynge retfærdigt. Fair scheduling er en metode til at tildele ressourcer til programmer på en sådan måde, at alle programmer i gennemsnit får en lige stor andel af ressourcerne over tid.
Skriv et svar