Meisterschaft in der Ninja-Ressourcenverwaltung

HadoopHadoopBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In der alten Land der aufgehenden Sonne, versteckt zwischen den majestätischen Gipfeln des Mount Fuji, blühte ein verborgenes Dorf von Ninja. Hier wurde die Kunst der Verschwiegenheit, Präzision und Kreativität perfektioniert. Unter den Elite der Dorfes stand Yuki, eine berühmte Meisterin der Ninja-Waffen.

Yuki's Schmiede war ein Anblick, ein Zeugnis ihrer unerschütterlichen Hingabe und Kreativität. Aus dem besten Stahl schuf sie Schwerter, die durch die Luft mit müheloser Anmut schlugen, Shuriken, die mit genauer Präzision ihr Ziel erreichten, und Kunai, die auch die härtesten Rüstungen durchdringen konnten.

Yuki's wahre Meisterschaft lag jedoch nicht nur in ihrer Handwerkskunst, sondern auch in ihrer Fähigkeit, die Ressourcen des Dorfes zu verwalten. Mit dem Wachstum der Ninja-Clan stieg auch die Nachfrage nach Waffen und Ausrüstung, und Yuki sah sich mit der Aufgabe konfrontiert, sicherzustellen, dass jeder Ninja Zugang zu den Werkzeugen hatte, die er benötigte, wann er sie benötigte.

In dieser Suche entdeckte Yuki die Macht des Hadoop Resource Managers, eines leistungsstarken Tools, das es ihr ermöglichte, die Ressourcen des Dorfes effizient zuzuweisen und zu verwalten, um sicherzustellen, dass jede Ninja-Mission erfolgreich war.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL hadoop(("Hadoop")) -.-> hadoop/HadoopYARNGroup(["Hadoop YARN"]) hadoop/HadoopYARNGroup -.-> hadoop/yarn_setup("Hadoop YARN Basic Setup") hadoop/HadoopYARNGroup -.-> hadoop/yarn_app("Yarn Commands application") hadoop/HadoopYARNGroup -.-> hadoop/yarn_node("Yarn Commands node") hadoop/HadoopYARNGroup -.-> hadoop/resource_manager("Resource Manager") hadoop/HadoopYARNGroup -.-> hadoop/node_manager("Node Manager") subgraph Lab Skills hadoop/yarn_setup -.-> lab-288992{{"Meisterschaft in der Ninja-Ressourcenverwaltung"}} hadoop/yarn_app -.-> lab-288992{{"Meisterschaft in der Ninja-Ressourcenverwaltung"}} hadoop/yarn_node -.-> lab-288992{{"Meisterschaft in der Ninja-Ressourcenverwaltung"}} hadoop/resource_manager -.-> lab-288992{{"Meisterschaft in der Ninja-Ressourcenverwaltung"}} hadoop/node_manager -.-> lab-288992{{"Meisterschaft in der Ninja-Ressourcenverwaltung"}} end

Das Hadoop Resource Manager verstehen

In diesem Schritt werden wir in die Grundlagen des Hadoop Resource Managers und seine Rolle im Hadoop-Ekosystem eintauchen.

Zunächst wechseln wir den Standardbenutzer:

su - hadoop

Der Hadoop Resource Manager ist ein entscheidender Bestandteil der YARN (Yet Another Resource Negotiator)-Architektur in Hadoop. Er ist für die Verwaltung der Rechenressourcen des Clusters und die Planung von Anwendungen über die verfügbaren Knoten verantwortlich.

Beginnen wir mit der Erforschung der Architektur des Resource Managers:

+------------------+
|  Resource Manager|
+------------------+
|  Scheduler       |
|  ApplicationsMaster
|  NodeManager     |
+------------------+

Der Resource Manager besteht aus drei Hauptkomponenten:

  1. Scheduler: Diese Komponente ist für die Zuweisung von Ressourcen an die verschiedenen laufenden Anwendungen auf der Grundlage von vordefinierten Planungspolitiken verantwortlich.
  2. ApplicationsManager: Diese Komponente ist für das Annehmen von Job-Einsendungen, das Verhandeln des ersten Containers zur Ausführung des ApplicationMasters und das Bereitstellen des Diensts zum Neustarten des ApplicationMaster-Containers bei einem Fehler verantwortlich.
  3. NodeManager: Diese Komponente läuft auf jedem Knoten im Cluster und ist für das Starten und Überwachen der von dem Scheduler zugewiesenen Container verantwortlich.

Um die Funktionalität des Resource Managers besser zu verstehen, betrachten wir ein einfaches Beispiel.

Stellen Sie einen Beispiel-MapReduce-Job an den Cluster ein:

yarn jar /home/hadoop/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.6.jar pi 16 1000000

Überprüfen Sie den Status des Jobs:

yarn application -list

Die Ausgabe sollte ungefähr so aussehen:

2024-03-23 22:48:44,206 INFO client.DefaultNoHARMFailoverProxyProvider: Connecting to ResourceManager at /0.0.0.0:8032
Total number of applications (application-types: [], states: [SUBMITTED, ACCEPTED, RUNNING] and tags: []):1
                Application-Id	    Application-Name	    Application-Type	      User	     Queue	             State	       Final-State	       Progress	                       Tracking-URL
application_1711205220447_0001	     QuasiMonteCarlo	           MAPREDUCE	    hadoop	   default	           RUNNING	         UNDEFINED

In diesem Beispiel stellen wir einen MapReduce-Job an den Cluster mit dem Befehl yarn ein. Der Resource Manager erhält die Job-Anfrage und weist die erforderlichen Ressourcen (Container) zu, um den Job auszuführen. Anschließend können wir den Status des Jobs überprüfen und die Protokolle mit den bereitgestellten Befehlen anzeigen.

Konfiguration des Resource Managers

In diesem Schritt werden wir untersuchen, wie der Resource Manager so konfiguriert wird, dass er den spezifischen Anforderungen unseres Ninja-Dorfes entspricht.

Verhalten des Resource Managers kann über verschiedene Konfigurationsparameter angepasst werden. Diese Parameter werden normalerweise in der Datei yarn-site.xml im Hadoop-Konfigurationsverzeichnis (/home/hadoop/hadoop/etc/hadoop) festgelegt.

Schauen wir uns die 'yarn'-Konfigurationsdatei an und fügen einige zusätzliche Konfigurationen hinzu:

vim /home/hadoop/hadoop/etc/hadoop/yarn-site.xml

Fügen Sie die Konfigurationen hinzu:

  <!-- Geben Sie die Planungspolitik an -->
  <property>
    <name>yarn.resourcemanager.scheduler.class</name>
    <value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler</value>
  </property>

  <!-- Konfigurieren Sie die maximale Anzahl von gleichzeitig laufenden Anwendungen -->
  <property>
    <name>yarn.scheduler.maximum-allocation-mb</name>
    <value>8192</value>
  </property>

  <!-- Konfigurieren Sie die minimale und maximale Anzahl von virtuellen Kernen pro Container -->
  <property>
    <name>yarn.scheduler.minimum-allocation-vcores</name>
    <value>1</value>
  </property>
  <property>
    <name>yarn.scheduler.maximum-allocation-vcores</name>
    <value>4</value>
  </property>

In dieser Konfigurationsdatei haben wir die folgenden Parameter festgelegt:

  • yarn.resourcemanager.scheduler.class: Gibt die zu verwendende Planungspolitik an. In unserem Fall verwenden wir den Fair Scheduler, der gewährleistet, dass Ressourcen fair zwischen Anwendungen verteilt werden.
  • yarn.scheduler.maximum-allocation-mb: Legt die maximale Menge an Arbeitsspeicher (in Megabyte) fest, die einem einzelnen Container zugewiesen werden kann.
  • yarn.scheduler.minimum-allocation-vcores und yarn.scheduler.maximum-allocation-vcores: Definieren die minimale und maximale Anzahl von virtuellen Kernen, die einem Container zugewiesen werden können, respective.

Um diese Konfigurationsänderungen anzuwenden, müssen wir die Hadoop-Dienste neu starten.

Überwachen und Verwalten von Anwendungen

In diesem Schritt werden wir lernen, wie wir Anwendungen, die auf dem Hadoop-Cluster laufen, mit dem Resource Manager überwachen und verwalten.

Der Resource Manager bietet eine Weboberfläche (UI), mit der Sie die Ressourcen des Clusters und die laufenden Anwendungen überwachen und verwalten können. Um die Resource Manager-UI zuzugreifen, öffnen Sie einen Webbrowser und navigieren Sie zu http://<resource-manager-hostname>:8088.

In der Resource Manager-UI werden verschiedene Abschnitte angezeigt, die Informationen über den Cluster, die Knoten und die Anwendungen liefern. Hier sind einige wichtige Funktionen:

  1. Cluster-Metriken: Dieser Abschnitt zeigt die Gesamtmetriken des Clusters an, wie die insgesamt verfügbaren Ressourcen, die Anzahl der laufenden Anwendungen und die Ressourcenauslastung.
  2. Node Managers: In diesem Abschnitt werden alle aktiven NodeManagers im Cluster aufgelistet, zusammen mit ihrem Status, den verfügbaren Ressourcen und den laufenden Containern.
  3. Laufende Anwendungen: In diesem Abschnitt werden die derzeit laufenden Anwendungen angezeigt, deren Fortschritt, Ressourcenverbrauch und andere Details.
  4. Anwendungsgeschichte: In diesem Abschnitt wird eine historische Ansicht der abgeschlossenen Anwendungen bereitgestellt, einschließlich ihrer Protokolle und Metriken.

Um zu demonstrieren, wie Anwendungen mit der Resource Manager-UI verwaltet werden, stellen wir eine neue Anwendung an den Cluster.

## Stellen Sie einen WordCount-Job an den Cluster
yarn jar /home/hadoop/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.6.jar wordcount /home/hadoop/input /home/hadoop/output

Dieses Skript stellt einen WordCount MapReduce-Job an den Cluster. Bevor Sie das Skript ausführen, stellen Sie sicher, dass das Eingabeverzeichnis erstellt und einige Textdateien darin platziert sind:

hdfs dfs -mkdir -p /home/hadoop/input
hdfs dfs -put /home/hadoop/hello.txt /home/hadoop/input

Nachdem Sie den Job abgeschickt haben, können Sie seinen Fortschritt überwachen und ihn von der Resource Manager-UI aus verwalten. Sie können die Protokolle des Jobs anzeigen, den Job gegebenenfalls abbrechen oder das Ausgabeverzeichnis überprüfen, nachdem der Job abgeschlossen ist.

Zeigen Sie den Inhalt der Eingabedatei an:

hadoop:~/ $ hadoop fs -cat /home/hadoop/input/*                      [22:56:37]
hello labex
hello hadoop
hello spark
hello flink

Zeigen Sie den Inhalt der Ausgabedatei an:

hadoop:~/ $ hadoop fs -cat /home/hadoop/output/*                     [22:57:37]
flink	1
hadoop	1
hello	4
labex	1
spark	1

Zusammenfassung

In diesem Lab haben wir den Hadoop Resource Manager untersucht, ein leistungsstarkes Tool, das die effiziente Ressourcenallokation und -verwaltung in einem Hadoop-Cluster ermöglicht. Wir haben uns mit der Architektur des Resource Managers vertraut gemacht, gelernt, wie man ihn so konfiguriert, dass er spezifische Anforderungen erfüllt, und verschiedene Techniken zur Überwachung und Verwaltung von Anwendungen, die auf dem Cluster laufen, entdeckt.

Durch die Reise von Yuki, der Meisterin der Ninja-Waffenherstellung, haben wir die wandelnde Macht des Resource Managers bei der Gewährleistung gesehen, dass jeder Ninja Zugang zu den Werkzeugen hat, die er für erfolgreiche Missionen benötigt. Genauso wie Yuki die Kunst der Ressourcenverwaltung beherrschte, können auch wir die Fähigkeiten des Hadoop Resource Managers nutzen, um unsere Big-Data-Verarbeitungsabläufe zu optimieren.

Dieses Lab hat nicht nur praktische Erfahrungen mit dem Resource Manager vermittelt, sondern auch ein tieferes Verständnis des Hadoop-Ekosystems und seiner vielseitigen Komponenten vermittelt. Indem wir die Prinzipien der Ressourcenverwaltung und effizienten Planung aufgreifen, können wir neue Welten der Datenverarbeitungsfähigkeiten erschließen und auch die schwierigsten Big-Data-Herausforderungen bewältigen.