2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Artikelverzeichnis
Wichtige Architekturprinzipien von Yarn in Hadoop
3. Ausführungsprozess der Garnaufgabe
4. Eigenschaften und Nutzungsszenarien der drei Ressourcenplaner von Yarn
Apache Hadoop Yarn (Yet Another Reasource Negotiator, ein weiterer Ressourcenkoordinator) ist ein Ressourcenmanager, der nach der Hadoop2.x-Version verwendet wird und eine einheitliche Ressourcenverwaltungsplattform für Anwendungen der oberen Ebene bereitstellen kann.
Garn besteht hauptsächlich aus ResourceManager, NodeManager, ApplicationMaster und Container.
Ressourcenmanager
ResourceManager ist der zentrale Manager im Yarn-Cluster und verantwortlich für die Ressourcenzuweisung und -planung des gesamten Clusters. ResourceManager ist für die Überwachung des Status von NodeManager-Knoten, das Sammeln von Clusterressourcen, die Verarbeitung von Ressourcenanforderungen für vom Client übermittelte Aufgaben sowie das Starten und Überwachen von ApplicationMaster für jede Anwendung verantwortlich.
KnotenManager
NodeManager ist für die Verwaltung der Ressourcen (wie Speicher, CPU usw.) auf jedem Knoten und die Berichterstattung an ResourceManager verantwortlich. Wenn ResourceManager NodeManager einen Container (Container) zuweist, ist NodeManager für das Starten des Containers und die Überwachung des Containerbetriebs verantwortlich. Darüber hinaus erhält NodeManager auch den ApplicationMaster-Befehl zum Starten des Containers (Container) für jede Anwendung.
Bewerbungsmaster
Jede in Yarn ausgeführte Anwendung startet einen entsprechenden ApplicationMaster, der für die Beantragung von Ressourcen mit dem ResourceManager und die Verwaltung von Anwendungsaufgaben verantwortlich ist. ApplicationMaster ist im Wesentlichen ein Container, der von ResourceManager durchgeführt und von NodeManager gestartet wird. Nachdem ResourceManager Ressourcen vom ResourceManager zugewiesen hat, stellt er eine Verbindung zum entsprechenden NodeManager her Starten des Containers und Verwalten der auf dem Container ausgeführten Ressourcen.
Container
Container Container ist die grundlegende Ausführungseinheit in Yarn, die zum Ausführen von Anwendungsaufgaben verwendet wird. Es handelt sich um eine virtuelle Umgebung, die Anwendungscode, Abhängigkeiten und für den Betrieb erforderliche Ressourcen (Speicher, CPU, Festplatte, Netzwerk) enthält. Jeder Container wird vom ResourceManager dem ApplicationMaster zugeordnet und vom NodeManager auf dem entsprechenden Knoten gestartet und verwaltet. Die Ressourcennutzung des Containers wird von NodeManager überwacht und bei Bedarf an ResourceManager gemeldet.
Der Kern von Yarn besteht darin, die Ressourcenverwaltungs- und Aufgabenplanungsfunktionen von JobTracker in MR1 zu trennen, die jeweils von den ResourceManager- und ApplicationMaster-Prozessen implementiert werden. Der ResourceManager ist für die Ressourcenverwaltung und -planung des gesamten Clusters verantwortlich Anwendungsaufgabenplanung, Aufgabenüberwachung und Fehlertoleranz.
Wenn der Client eine MR-Aufgabe an Yarn sendet, werden die MR-Aufgabenressourcen (Split, Ressourcenkonfiguration, Jar-Paketinformationen) zunächst in HDFS hochgeladen.
Der Client wendet sich an ResourceManager, um ApplicationMaster zu starten.
ResourceManager wählt einen NodeManager-Knoten aus, der relativ wenig ausgelastet ist, und benachrichtigt den Knoten, ApplicationMaster (Container) zu starten.
Nachdem der ApplicationMaster gestartet wurde, lädt er die Ressourceninformationen der MR-Aufgabe vom HDFS auf das lokale Gerät herunter und beantragt dann Ressourcen vom ResourceManager, um die MR-Aufgabe zu starten.
ResourceManager gibt die Ressourcenliste an ApplicationMaster zurück.
ApplicationMaster benachrichtigt dann den entsprechenden NodeManager, den Container zu starten.
Nachdem der Container gestartet wurde, wird er umgekehrt beim ApplicationMaster registriert.
ApplicationMaster sendet die Aufgabe zur Ausführung an den Container und die Aufgabe führt die Geschäftslogik des von uns geschriebenen Codes aus.
FIFO-Scheduler (First-In-Fist-Out-Scheduler) , der einfachste Scheduler in Yarn. Der FIFO-Scheduler stellt die eingereichten Anwendungen in der Reihenfolge der Einreichung in eine First-In-First-Out-Warteschlange. Bei der Zuweisung von Ressourcen werden die Ressourcen zuerst der obersten Anwendung in der Warteschlange zugewiesen und dann werden die Ressourcen der darauffolgenden Anwendung zugewiesen Die Ressourcenanforderungen der obersten Anwendung werden erfüllt. Eine Anwendung weist Ressourcen zu und so weiter. Wenn diese Art von Scheduler Ressourcen plant, ist es möglich, dass eine Anwendung mit großem Ressourcenbedarf alle Clusterressourcen belegt, was dazu führt, dass andere Anwendungen blockiert werden.
Kapazitätsplaner (Kapazitätsplaner) Es handelt sich um den in Yarn konfigurierten Standard-Ressourcenplaner, der mehreren Mandanten die sichere gemeinsame Nutzung eines großen Clusters ermöglicht. Der Kapazitätsplaner unterstützt die Konfiguration mehrerer Ressourcenwarteschlangen. Sie können die minimalen und maximalen nutzbaren Ressourcenverhältnisse für jede Ressourcenwarteschlange festlegen. Bei der Zuweisung von Ressourcen werden die Ressourcen mit dem niedrigsten Verhältnis „tatsächliche Ressourcen/Budgetressourcen“ priorisiert. Jede Ressourcenwarteschlange übernimmt intern die FIFO-Planungsstrategie.
MesseplanerEs handelt sich um eine Ressourcenplanungsmethode, die allen Anwendungen im Laufe der Zeit gleiche Ressourcenanteile zuweist.
Der Unterschied zwischen FIFO-, Kapazitäts- und Fair-Ressourcenplanern in Yarn ist wie folgt:
Garnressourcenplaner | Merkmale | Anwendbare Szene |
FIFO-Scheduler | 1. Einfach und leicht verständlich, keine zusätzliche Konfiguration erforderlich. 2. Bewerbungen werden in der Reihenfolge ihrer Einreichung bearbeitet (first in, first out). 3. Nicht für gemeinsam genutzte Cluster geeignet. Jede Anwendung muss warten, bis sie an der Reihe ist, um ausgeführt zu werden. | Nicht gemeinsam genutzte Cluster, Szenarien, die keine hohen Anforderungen an die Reihenfolge der Aufgabenausführung stellen. Im Allgemeinen nicht in Produktionsumgebungen verwendet. |
Kapazitätsplaner (wird standardmäßig in Open-Source-Garn verwendet) | 1. Ermöglichen Sie mehreren Organisationen die gemeinsame Nutzung von Clusterressourcen, und jede Organisation verfügt über eine eigene Warteschlange. 2. Unterstützen Sie die hierarchische Aufteilung von Warteschlangen und die flexible Konfiguration von Warteschlangenressourcen. 3. Sie können die maximale Kapazität der Warteschlange begrenzen und den Ressourcenwettbewerb verringern. | Shared-Cluster-Szenarien, bei denen mehrere Organisationen oder Teams dieselben Cluster-Ressourcen teilen. |
Messeplaner (standardmäßig von CDH verwendet) | 1. Weisen Sie allen laufenden Anwendungen Ressourcen gerecht zu und unterstützen Sie eine faire Ressourcenfreigabe zwischen mehreren Warteschlangen. 2. Unterstützen Sie die dynamische Erstellung von Warteschlangen und bestimmen Sie die Platzierung von Anwendungen mithilfe einer Reihe von Regelsystemen. 3. Unterstützen Sie die Ressourcenpräemptionsfunktion, um eine gerechte Verteilung der Ressourcen sicherzustellen. | 1. Szenarien, in denen mehrere Benutzer oder Organisationen Ressourcen in einem gemeinsam genutzten Cluster fair erhalten müssen. 2. Umgebungen mit hohen Anforderungen an die Ressourcenkontrolle auf Warteschlangenebene und fein abgestimmte Planungsstrategien. |