Understanding Hadoop Yarn
On Dezember 9, 2021 by adminYARN – Yet Another Resource Negotiator, ist ein Teil der Hadoop 2 Version, ist eine der beiden Hauptkomponenten von Apache Hadoop (mit HDFS). Er plant die Nutzung der Cluster-Ressourcen sowie die auf die Daten angewendeten Behandlungen.
Oben ist die grundlegende Architektur von Yarn dargestellt, wobei Resource Manager die Kernkomponente der gesamten Architektur ist, die für die Verwaltung der Ressourcen einschließlich RAM, CPUs und anderer Ressourcen im gesamten Cluster verantwortlich ist. Der Application Master ist für die Anwendungsplanung während des gesamten Lebenszyklus verantwortlich, der Node Manager ist für die Bereitstellung und Isolierung von Ressourcen auf diesem Knoten zuständig.
Der Resource Manager: Er steuert die Ressourcenverwaltung des Clusters und trifft auch Zuweisungsentscheidungen. Der Ressourcenmanager hat zwei Hauptkomponenten: Scheduler und Applications Manager.
- Der Scheduler: wird als YarnScheduler bezeichnet, der verschiedene Richtlinien für die Verwaltung von Beschränkungen wie Kapazität, Fairness und Service Level Agreements ermöglicht.
- Der Applications Manager: ist für die Verwaltung einer Liste der eingereichten Anwendungen zuständig. Wenn genügend Ressourcen verfügbar sind, leitet er die Anwendung an den Scheduler weiter, andernfalls wird die Anwendung abgelehnt.
Der Node Manager: ist für den Start und die Verwaltung von Containern auf einem Knoten verantwortlich. Container führen Aufgaben aus, die vom AppMaster festgelegt wurden.
- Der Container: Weist einem ApplicationMaster eine Ressource zu. Der ResourceManager ist für die Ausgabe von Ressourcen/Containern an einen ApplicationMaster verantwortlich und bezieht sich auf eine Sammlung von Ressourcen wie Speicher, CPU, Festplatte und Netzwerk-IO.
- Der ApplicationMaster: ist eine Instanz einer Framework-spezifischen Bibliothek, die Ressourcen vom ResourceManager aushandelt und mit dem NodeManager zusammenarbeitet, um die gewährten Ressourcen (gebündelt als Container) für eine bestimmte Anwendung auszuführen und zu überwachen. Eine Anwendung kann ein Mapreduce-Job, ein Hive-Framework…
Schritte der Ausführung von Anwendungen mit YARN:
- Ein Client übergibt eine Anwendung an den YARN ResourceManager.
- Der ApplicationsManager (im ResourceManager) handelt einen Container aus und bootstrapst die ApplicationMaster-Instanz für die Anwendung.
- Der ApplicationMaster registriert sich beim ResourceManager und fordert Container (RAMs und CPUs) an.
- Der ApplicationMaster kommuniziert mit NodeManagern, um die ihm zugewiesenen Container zu starten.
- Der ApplicationMaster verwaltet die Anwendungsausführung. Während der Ausführung liefert die Anwendung Fortschritts- und Statusinformationen an den ApplicationMaster. Der Client kann den Status der Anwendung überwachen, indem er den ResourceManager abfragt oder direkt mit dem ApplicationMaster kommuniziert.
- Der ApplicationMaster meldet den Abschluss der Anwendung an den ResourceManager.
- Der ApplicationMaster hebt die Registrierung beim ResourceManager auf, der daraufhin den ApplicationMaster-Container aufräumt.
Yarn Scheduler :
Der Scheduler hat eine steckbare Richtlinie, die für die Aufteilung der Cluster-Ressourcen auf die verschiedenen Warteschlangen, Anwendungen usw. verantwortlich ist.
2. FIFO-Scheduler
Der FIFO-Scheduler ist eine der frühesten von Hadoop verwendeten Einsatzstrategien und kann einfach als Java-Warteschlange interpretiert werden. was bedeutet, dass sich nur ein Job gleichzeitig im Cluster befinden kann. Alle Anwendungen werden in der Reihenfolge ihrer Einreichung ausgeführt, und der Job nach Abschluss des vorherigen Jobs wird in der Reihenfolge der Warteschlange ausgeführt.
Dieser Scheduler ermöglicht es, kurze Anwendungen in angemessener Zeit zu beenden, während langlebige Anwendungen nicht verhungern.
2. Kapazitäts-Scheduler
Der Kapazitäts-Scheduler ist ein pluggable Scheduler für Hadoop, der es mehreren Tenants ermöglicht, sich einen großen Cluster sicher zu teilen. Die Ressourcen werden den Anwendungen jedes Mandanten so zugewiesen, dass der Cluster unter Berücksichtigung der zugewiesenen Kapazitäten vollständig genutzt wird.
Die Warteschlangen werden in der Regel von Administratoren eingerichtet, um die Wirtschaftlichkeit des gemeinsam genutzten Clusters zu berücksichtigen. Der Capacity Scheduler unterstützt hierarchische Warteschlangen, um sicherzustellen, dass Ressourcen unter den Sub-Warteschlangen einer Organisation geteilt werden, bevor andere Warteschlangen freie Ressourcen nutzen dürfen.
3. Fair Scheduler
Der FairScheduler ist ein pluggbarer Scheduler für Hadoop, der es YARN-Anwendungen ermöglicht, Ressourcen in einem großen Cluster gerecht zu teilen. Faires Scheduling ist eine Methode zur Zuweisung von Ressourcen an Anwendungen, so dass alle Anwendungen im Laufe der Zeit im Durchschnitt einen gleichen Anteil an Ressourcen erhalten.
Schreibe einen Kommentar