Was ist die Hadoop-Yarn-Architektur und ihre Komponenten?

Veröffentlicht: 2020-02-10

Inhaltsverzeichnis

Einführung in Hadoop YARN

YARN ist die Hauptkomponente von Hadoop v2.0. YARN hilft bei der Öffnung von Hadoop, indem es die Verarbeitung und Ausführung von Daten für die Stapelverarbeitung, Stream-Verarbeitung, interaktive Verarbeitung und Diagrammverarbeitung ermöglicht, die in HDFS gespeichert sind. Auf diese Weise hilft es, andere Arten von verteilten Anwendungen als MapReduce auszuführen.

In der YARN-Architektur ist die Verarbeitungsschicht von der Ressourcenverwaltungsschicht getrennt. In der Version von Hadoop 1.0 war es Aufgabe des Jobtrackers, eine Trennung zwischen Anwendungsmanager und Ressourcenmanager zu schaffen. YARN ermöglicht die Verarbeitung und Ausführung der in HDFS (Hadoop Distributed File System) gespeicherten Daten durch verschiedene Datenverarbeitungs-Engines wie Stapelverarbeitung, Stream-Verarbeitung, interaktive Verarbeitung, Diagrammverarbeitung und viele mehr. Somit wird die Effizienz des Systems durch den Einsatz von YARN gesteigert. Die Verarbeitung des Antrags wird in YARN durch seine verschiedenen Komponenten geplant. Viele verschiedene Arten von Ressourcen werden auch nach und nach für eine optimale Nutzung zugewiesen. YARN hilft sehr bei der richtigen Nutzung der verfügbaren Ressourcen, was für die Verarbeitung einer großen Datenmenge sehr wichtig ist.

Warum GARN?

MapReduce führt Funktionen der Ressourcenverwaltung und -verarbeitung aus. Hadoop v1.0 ist auch als MapReduce Version 1 (MRV1) bekannt. Es gab nur einen einzigen Master für Job Tracker.

Sie werden nicht glauben, wie dieses Programm die Karriere von Studenten verändert hat

Bei der vorherigen Version von Hadoop handelt es sich um Hadoop Version 1.0, die auch als MapReduce Version 1 (MRV1) bekannt ist, um sowohl die Aufgabe des Prozess- als auch des Ressourcenmanagements selbst auszuführen. Es hat ein Job-Tracker-Modul, das für alles verantwortlich ist. Daher ist es der einzige Master, der Ressourcen für Anwendungen zuweist, die Bedarfsplanung durchführt und auch die Verarbeitungsjobs im System überwacht. Hadoop Version 1.0 reduziert Aufgaben und weist mehreren Unterprozessen Karten zu, die als Task Tracker bezeichnet werden. Task Tracker berichtet auch regelmäßig über den Fortschritt von Prozessen. Aber das Hauptproblem ist nicht das, das Problem ist dieses Design eines einzigen Masters für alle, was zu Engpässen führt. Außerdem war die Nutzung der Rechenressourcen ineffizient. Daher wurde die Skalierbarkeit bei dieser Version von Hadoop zu einem Problem. Aber auf der positiven Seite wird dieses Problem durch YARN gelöst, eine wichtige Kernkomponente in seinem Nachfolger Hadoop Version 2.0, der im Jahr 2012 von Yahoo und Hortonworks eingeführt wurde. Die Grundidee hinter dieser Erleichterung ist die Trennung von MapReduce vom Ressourcenmanagement und der Auftragsplanung anstelle eines einzigen Masters. Somit ist YARN nun für Job Scheduling und Resource Management zuständig.

In Hadoop 2.0 wurde das Konzept von Application Master und Resource Manager von YARN eingeführt. Im gesamten Hadoop-Cluster wird die Nutzung der Ressourcen vom Ressourcenmanager überwacht.

Es gibt einige Eigenschaften von YARN, für die es sehr berühmt wurde, nämlich:

  1. Mandantenfähigkeit: YARN hat den Zugriff auf mehrere Datenverarbeitungs-Engines wie Batch-Verarbeitungs-Engine, Stream-Verarbeitungs-Engine, interaktive Verarbeitungs-Engine, Graph-Verarbeitungs-Engine und vieles mehr ermöglicht. Dies hat dem Unternehmen den Vorteil der Mandantenfähigkeit verschafft.
  2. Clusternutzung : Cluster werden optimal genutzt, da Cluster in Hadoop mit Hilfe von YARN dynamisch genutzt werden.
  3. Kompatibilität : YARN ist auch mit der ersten Version von Hadoop, dh Hadoop 1.0, kompatibel, da es die vorhandenen Map-Reduce-Apps verwendet. Somit kann YARN auch mit Hadoop 1.0 verwendet werden.
  4. Skalierbarkeit : Tausende von Clustern und Knoten können vom Planer im Ressourcen-Manager von YARN von Hadoop verwaltet und erweitert werden.

Bestandteile von GARN

  • Container:

Im Container findet man physische Ressourcen wie eine Festplatte auf einem einzelnen Knoten, CPU-Kerne, RAM. Container Launch Context (CLC) wird zum Aufrufen von Containern verwendet. Daten über die Abhängigkeiten, Sicherheitstoken, Umgebungsvariablen, die als Datensatz verwaltet werden, der als Container Launch Context (CLC) bekannt ist.

  1. Auf einem bestimmten Host kann eine Anwendung nur den angegebenen Speicher von CPU und Speicher verwenden. Diese angegebene Speichermenge kann nur verwendet werden, nachdem die Erlaubnis vom Container erteilt wurde.
  2. Der Container-Startkontext wird zum Verwalten von YARN-Containern verwendet. Es wird auch Container LifeCycle (CLC) genannt. Notwendige Befehle für die Erstellung des Prozesses werden in diesem Datensatz gespeichert. Es speichert auch die Nutzdaten für Node Manager-Dienste, Sicherheitstoken, Abhängigkeiten und die Zuordnung von Umgebungsvariablen.
  • Bewerbungsmaster:

In einem Framework wird die Einreichung eines einzelnen Jobs als Bewerbung bezeichnet. Die Überwachung des Antragsfortschritts, die Verfolgung des Antragsstatus und die Aushandlung von Ressourcen mit dem Ressourcenmanager liegen in der Verantwortung des Antragsmanagers. Alle Anforderungen an die Ausführung einer Anwendung werden durch Senden des Container Launch Context (CLC) erfüllt. Der Anwendungsmaster stellt den Container-Startkontext (CLC) bereit, indem er den Container vom Knotenmanager anfordert. Von Zeit zu Zeit erhält der Ressourcenmanager einen Zustandsbericht, nachdem die Anwendung gestartet wurde.

  • Knotenmanager:

Der Knotenmanager kümmert sich um einzelne Knoten im Hadoop-Cluster und verwaltet auch Container, die sich auf jeden spezifischen Knoten beziehen. Er ist beim Ressourcenmanager registriert und sendet den Integritätsstatus jedes Knotens an den Ressourcenmanager und gibt an, ob der Knotenprozess die Arbeit mit der Ressource beendet hat. Als primäres Ziel besteht darin, jeden spezifischen Knotencontainer zu verwalten, der vom Ressourcenmanager zugewiesen wird. Der Knotenmanager erstellt auch einen Containerprozess, wenn er vom Anwendungsmaster angefordert wird. Wenn der Anwendungsmaster den angehängten Container vom Knotenmanager durch einen CLC (Container Launch Context) sendet und anfordert, der alles enthält, was eine Anwendung zum Ausführen benötigt. Dann erstellt der Knotenmanager den angeforderten Prozesscontainer und führt ihn aus. Der Knotenmanager ist auch dafür verantwortlich, die Ressourcennutzung durch einzelne Container zu überwachen und sie dem Ressourcenmanager zu melden. Somit arbeiten Knotenmanager und Ressourcenmanager zusammen, um zwischen Knoten zu kommunizieren und die Ressourcennutzung durch jeden Knoten in dem Cluster zu verwalten. Es kann auch Container beenden, wenn es vom Ressourcenmanager angewiesen wird. Schließlich protokollieren Node-Manager alles durch das Log-Management-System darin.

Ein bestimmter Knoten wird vom Node Manager betreut. Der Knotenmanager verwaltet den Arbeitsablauf und die Anwendung des Knotens. Die Protokollverwaltung wird durchgeführt und der Node Manager überwacht die Ressourcennutzung. Der Ressourcen-Manager gibt dem Node-Manager Anweisungen, um einen Container zu beenden. Der Anwendungsmaster fordert den Knotenmanager auf, den Containerprozess zu starten. Die Erstellung eines Containerprozesses liegt in der Verantwortung des Node Managers.

  • Ressourcenmanager:

Die Ressourcenverwaltung und Zuweisung aller Apps liegt in der Verantwortung von Resource Manager und ist der Master-Daemon von YARN. Vom Ressourcenmanager empfangene Anforderungen werden an den entsprechenden Knotenmanager weitergeleitet. Entsprechend der Anwendung werden Ressourcen vom Ressourcenmanager zur Vervollständigung zugeteilt.

  1. Die Nutzung des Clusters wird optimiert, z. B. indem die Nutzung aller Ressourcen gegen verschiedene Arten von Einschränkungen wie SLAs, Fairness und Kapazitätsgarantien aktiv gehalten wird.
  2. Der Ressourcenmanager führt die Zuweisung verfügbarer Ressourcen durch.
  3. Der Ressourcen-Manager vermittelt Cluster-Ressourcen.
  4. Die eigentliche Bearbeitung der Anfragen findet in Nodes statt und wird von den Node Managern verwaltet. Immer wenn eine Verarbeitungsanforderung empfangen wird, überträgt er die Anforderungen in Teilen an seine entsprechenden Knotenmanager.
  5. Der Ressourcenmanager ist die höchste Instanz für die Zuweisung von Ressourcen.

Es gibt zwei Hauptkomponenten des Ressourcenmanagers: –

  • Anwendungsmanager -

Der Anwendungsmanager ist für die Verwaltung einer Reihe von eingereichten Aufgaben oder Anwendungen verantwortlich. Es prüft und validiert zunächst die Spezifikationen des eingereichten Antrags und kann die Anträge ablehnen, wenn nicht genügend Ressourcen zur Verfügung stehen. Es stellt auch sicher, dass keine andere Anwendung mit derselben ID existiert, die bereits eingereicht wurde, was durch einen fehlerhaften oder böswilligen Client verursacht werden kann. Dann leitet es den eingereichten Antrag nach der Validierung an den Planer weiter. Schließlich überwacht es auch den Status von Anwendungen und verwaltet abgeschlossene Anwendungen, um etwas Ressourcen-Manager-Arbeitsspeicher zu sparen. Der Anwendungsmanager speichert fertige Bewerbungen in einem Cache und entfernt alte, fertige Bewerbungen, um Platz für neu eingereichte Bewerbungen zu schaffen.

  • Planer -

Basierend auf der Ressourcenverfügbarkeit und der Anwendungszuweisung plant der Scheduler die Aufgaben. Es gibt keine andere Aufgabe, die vom Scheduler ausgeführt wird, wie kein Neustart des Jobs nach dem Fehlschlagen, Verfolgen oder Überwachen von Aufgaben. Die verschiedenen Arten von Scheduler-Plugins sind Fair Scheduler und Capacity Scheduler, die vom YARN-Scheduler für die Partitionierung von Cluster-Ressourcen unterstützt werden.

Schritte des Arbeitsablaufs der Anwendung in Hadoop YARN

Ein Antrag wird vom Auftraggeber gestellt.

  1. Application Manager wird durch die Zuweisung des Containers durch den Resource Manager gestartet.
  2. Resource Manager und Application Manager registrieren sich gegenseitig.
  3. Der Anwendungsmanager führt die Verhandlung des Containers mit dem Ressourcenmanager durch.
  4. Der Knotenmanager startet den Container, nachdem er vom Anwendungsmanager benachrichtigt wurde.
  5. Die Ausführung des Anwendungscodes erfolgt im Container.
  6. Der Anwendungsmanager oder Ressourcenmanager überwacht den Status der Anwendung, nachdem er vom Client kontaktiert wurde.
  7. Die Aufhebung der Registrierung von Application Manager erfolgt mit Resource Manager, nachdem der Vorgang abgeschlossen ist.

Einpacken

Wenn Sie mehr über Big Data erfahren möchten, schauen Sie sich unser PG Diploma in Software Development Specialization in Big Data-Programm an, das für Berufstätige konzipiert ist und mehr als 7 Fallstudien und Projekte bietet, 14 Programmiersprachen und Tools abdeckt und praktische praktische Übungen enthält Workshops, mehr als 400 Stunden gründliches Lernen und Unterstützung bei der Stellenvermittlung bei Top-Unternehmen.

Lernen Sie Softwareentwicklungskurse online von den besten Universitäten der Welt. Verdienen Sie Executive PG-Programme, Advanced Certificate-Programme oder Master-Programme, um Ihre Karriere zu beschleunigen.

Meistern Sie die Technologie der Zukunft – Big Data

Über 400 Lernstunden. 14 Sprachen & Tools. IIIT-B Alumni-Status.
Fortgeschrittenes Zertifikatsprogramm in Big Data vom IIIT Bangalore