What is Hadoop YARN?

Was ist Hadoop YARN?

Geschrieben von: Jeff Tse

|

|

Lesezeit 4 min

Was ist Hadoop YARN?

Hadoop YARN (Yet Another Resource Negotiator) ist eine wichtige Komponente des Hadoop-Ökosystems und wurde in Version 2.0 eingeführt, um die Einschränkungen des ursprünglichen Hadoop MapReduce-Frameworks zu beheben. YARN dient als Ressourcenverwaltungsebene, die es ermöglicht, mehrere Datenverarbeitungs-Engines auf einem einzigen Hadoop-Cluster auszuführen und so die Flexibilität, Skalierbarkeit und Effizienz der Verarbeitung großer Datenmengen zu verbessern. Dieser Artikel bietet eine ausführliche Untersuchung von Hadoop YARN, seiner Architektur, Komponenten, Funktionen und seiner Auswirkung auf das Hadoop-Ökosystem.

Der Bedarf an YARN

Vor der Einführung von YARN stützte sich die Architektur von Hadoop in hohem Maße auf einen einzigen Job Tracker für die Ressourcenverwaltung und Jobplanung. Dieses Design brachte mehrere Herausforderungen mit sich:

  1. Skalierbarkeitsprobleme: Der einzelne Job Tracker wurde mit zunehmender Clustergröße zum Engpass. Er hatte Mühe, Tausende von Knoten und gleichzeitig ausgeführte Aufgaben effektiv zu verwalten.
  2. Ineffiziente Ressourcennutzung: Das ursprüngliche MapReduce-Framework war auf die Stapelverarbeitung beschränkt, was bedeutete, dass andere Verarbeitungsparadigmen wie Stream-Verarbeitung und interaktive Abfragen nicht effizient ausgeführt werden konnten.
  3. Eingeschränkte Flexibilität: Die starre Struktur von MapReduce schränkt die Möglichkeit ein, verschiedene Arten von Anwendungen gleichzeitig auf demselben Cluster auszuführen.

Um diese Herausforderungen zu bewältigen, wurde YARN entwickelt, um die Ressourcenverwaltung von der Datenverarbeitung zu entkoppeln und so eine vielseitigere und effizientere Computerumgebung zu ermöglichen.

Hauptmerkmale von YARN

YARN führt mehrere wichtige Funktionen ein, die die Funktionalität von Hadoop verbessern:

  • Multi-Tenancy: YARN ermöglicht verschiedenen Anwendungen die dynamische gemeinsame Nutzung von Ressourcen, sodass mehrere Verarbeitungs-Frameworks (wie Spark, Storm usw.) gleichzeitig auf demselben Cluster ausgeführt werden können.
  • Verbessertes Ressourcenmanagement: Es bietet eine bessere Ressourcenzuweisung durch seine Ressourcenmanager- und Knotenmanagerarchitektur und gewährleistet so eine optimale Nutzung der Clusterressourcen.
  • Unterstützung für verschiedene Verarbeitungsmodelle: YARN unterstützt Stapelverarbeitung, interaktive Verarbeitung, Streamverarbeitung und Diagrammverarbeitung und ist daher für eine breite Palette von Datenanwendungen geeignet.
  • Skalierbarkeit: Mit YARN kann Hadoop skaliert werden, um Tausende von Knoten effizient und ohne Leistungseinbußen zu verwalten.

YARN-Architektur

Der Ressourcenmanager ist der Master-Daemon in YARN, der für die Verwaltung von Clusterressourcen verantwortlich ist. Er führt zwei Hauptfunktionen aus:

  • Ressourcenzuweisung: Der RM weist verschiedenen Anwendungen Ressourcen basierend auf ihren Anforderungen und den verfügbaren Ressourcen im Cluster zu.
  • Jobplanung: Es plant Jobs durch die Kommunikation mit Knotenmanagern und Anwendungsmastern.

Das RM besteht aus zwei Hauptkomponenten:

  • Scheduler: Der Scheduler ist für die Zuweisung von Ressourcen an verschiedene laufende Anwendungen auf der Grundlage vordefinierter Richtlinien (z. B. Capacity Scheduler oder Fair Scheduler) verantwortlich. Er überwacht nicht den Anwendungsstatus und startet fehlgeschlagene Aufgaben nicht neu.
  • Anwendungsmanager: Diese Komponente verwaltet die Übermittlung von Anwendungen und verhandelt Ressourcen zum Starten von Anwendungsmastern.
Was ist Hadoop YARN

2. Knotenmanager (NM)

Der Node Manager ist ein Framework-Agent pro Rechner, der für die Verwaltung von Containern auf einzelnen Knoten innerhalb des Clusters verantwortlich ist. Zu seinen Hauptaufgaben gehören:

  • Containerverwaltung: Der NM startet Container gemäß Anforderung von Anwendungsmastern und überwacht deren Ressourcennutzung (CPU, Speicher, Festplatte).
  • Integritätsüberwachung: Der Integritätsstatus der Knoten wird an den Ressourcenmanager zurückgemeldet und etwaige Fehler werden durch die Neuzuweisung von Ressourcen nach Bedarf behoben.

3. Anwendungsmaster (AM)

Jede auf YARN ausgeführte Anwendung verfügt über einen eigenen Anwendungsmaster, der Ressourcen mit dem Ressourcenmanager aushandelt und mit Knotenmanagern zusammenarbeitet, um Aufgaben auszuführen. Der AM ist verantwortlich für:

  • Ressourcenverhandlung: Es fordert Container vom RM basierend auf seinem Ressourcenbedarf an.
  • Aufgabenüberwachung: Der AM verfolgt den Fortschritt der in Containern ausgeführten Aufgaben und behebt etwaige Fehler, indem er bei Bedarf neue Container anfordert.

4. Behälter

Container sind die grundlegende Einheit der Ressourcenzuweisung in YARN. Ein Container kapselt eine bestimmte Menge an CPU- und Speicherressourcen, die für die Ausführung einer Aufgabe zugewiesen sind. Jeder Container führt eine Instanz des Codes einer Anwendung innerhalb seiner zugewiesenen Ressourcen aus.

So funktioniert YARN

Der Workflow in YARN kann in mehrere wichtige Schritte unterteilt werden:

  1. Auftragsübermittlung: Ein Client übermittelt einen Auftrag an den Ressourcenmanager.
  2. Erstellen eines Anwendungsmasters: Der RM weist einen Container für den mit diesem Job verknüpften Anwendungsmaster zu.
  3. Ressourcenverhandlung: Der Anwendungsmaster fordert je nach Bedarf zusätzliche Container vom Ressourcenmanager an.
  4. Aufgabenausführung: Sobald Container zugewiesen sind, werden sie von Knotenmanagern gestartet, wo Aufgaben ausgeführt werden.
  5. Überwachung und Berichterstellung: Der Anwendungsmaster überwacht die Aufgabenausführung und meldet den Fortschritt an den Ressourcenmanager zurück.
  6. Abschluss: Nach Abschluss aller Aufgaben meldet sich der Anwendungsmaster beim Ressourcenmanager ab.
Was ist Hadoop YARN

Vorteile der Verwendung von YARN

YARN bietet Hadoop-Benutzern zahlreiche Vorteile:

  1. Verbesserte Leistung: Durch die Trennung der Ressourcenverwaltung von der Datenverarbeitung verbessert YARN die Gesamtleistung und Effizienz bei der Jobausführung.
  2. Flexibilität: Benutzer können verschiedene Arten von Anwendungen (Batch, interaktiv, Streaming) gleichzeitig ausführen, ohne dass es zu Ressourcenkonflikten kommt.
  3. Bessere Ressourcennutzung: Durch dynamische Zuweisung wird sichergestellt, dass die Ressourcen von den verschiedenen im Cluster ausgeführten Anwendungen effizient genutzt werden.
  4. Skalierbarkeit: Organisationen können ihre Cluster problemlos skalieren, ohne sich über Leistungsengpässe oder Einschränkungen früherer Hadoop-Versionen Gedanken machen zu müssen.
  5. Unterstützung für mehrere Frameworks: Mit der Architektur von YARN können Frameworks wie Apache Spark und Apache Flink nahtlos neben herkömmlichen MapReduce-Jobs ausgeführt werden.

Anwendungsfälle für YARN

YARN wird aufgrund seiner Vielseitigkeit und Effizienz bei der Verarbeitung großer Datenmengen branchenübergreifend eingesetzt:

  1. Echtzeit-Datenverarbeitung: Organisationen verwenden YARN mit Frameworks wie Apache Storm oder Apache Spark Streaming, um Echtzeit-Datenfeeds effizient zu verarbeiten.
  2. Interaktive Analyse: Datenwissenschaftler nutzen Tools wie Apache Hive oder Impala, die auf YARN laufen, für interaktive Abfragen großer, in HDFS gespeicherter Datensätze.
  3. Batch-Verarbeitungs-Workloads: Herkömmliche MapReduce-Jobs werden unter YARN weiterhin effektiv ausgeführt und profitieren gleichzeitig von einer verbesserten Ressourcenverwaltung.
  4. Anwendungen für maschinelles Lernen: Mit Frameworks wie Apache Mahout, das auf YARN läuft, können Unternehmen mithilfe großer Datensätze anspruchsvolle Modelle für maschinelles Lernen erstellen.