6.1 Die Grundlagen von YARN

  • „YARN“ ist ein Akronym für „Yet Another Resource Negotiator“.
  • YARN ist das „Hirn“ von Hadoop, da hier alle Ressourcen des Clusters auf die verschiedenen Services verteilt werden und verschiedene Aufgaben von YARN gesteuert ablaufen.
  • Dabei besteht YARN vorwiegend aus ResourceManagern und NodeManagern.
  • Die ResourceManager erhalten die Aufgaben, welche vom Hadoop-System zu erledigen sind und weist diese dem NodeManager zu, welcher freie Ressourcen hat.
  • Der NodeManager wird auf jedem DataNode installiert, also jedem Server, der nur für die Datenverarbeitung zuständig ist. Er ist für die Ausführung jeder zugewiesenen Aufgabe verantwortlich.
  • Weitere Komponenten sind beispielsweise Schedulers, welche den zeitlichen Ablauf oder die zeitliche Steuerung von Aufgaben im Hadoopcluster übernehmen.

Wie kann ich YARN bei Hadoop einordnen?

Als Grundlage bei Hadoop-Clustern verwendet man HDFS, das Dateisystem von Hadoop. Hier werden alle Daten für den Cluster abgelegt und warten auf ihren Einsatz. „YARN“ liegt als Schicht auf dem HDFS, da es die Verarbeitung dieser Daten koordiniert und den Zugriff der Anwendungen auf das HDFS steuert. Die Anwendungen selbst liegen oberhalb von YARN, da diese mit ihren Anwendungen Anfragen bei YARN auf Ressourcen stellen, welche dann von YARN zugeordnet werden.

Wie funktioniert YARN eigentlich?

Kannst du dich an das Schaubild erinnern, wo ich dir vorgestellt habe, wie MapReduce funktioniert und wie die Anfrage an HDFS gestellt wird? Eigentlich habe ich dir damit schon erklärt, wie YARN funktioniert.

  1. Der MapReduce-Job wird auf einem ClientNode gestartet.
  2. Der Job wird an den YARN Resource Manager weitergeleitet. Yarn hat alle Ressourcen aller Clusterknoten in der Übersicht und weißt den Job einem Knoten zu, der frei ist bzw. welcher die kleinste Warteschlange hat.
  3. Gleichzeitig werden alle notwendigen Daten über HDFS angefragt, also wo sich welche Daten befinden, damit diese zur Verarbeitung zur Verfügung stehen.
  4. Yarn leitet die Anfrage an einen freien NodeManager, welcher als Application Master fungiert. Dieser leitet die Anfrage an einen freien NodeManager-Node zu, um die Aufträge abzuarbeiten. Dazu nimmt sich dieser alle notwendigen Daten vom HDFS. Der Application Master übernimmt dabei das Monitoring des Prozesses.
  5. Die Map()- und Reduce()-Aufgaben können auch an mehrere Clusterknoten verteilt werden.

Weiter geht es mit: 6.2 Die Grundlagen von Tez