Video: How to Setup Multinode Hadoop 2 on CentOS/RHEL Using VirtualBox 2024
In einem Hadoop-Universum sind unter Slave-Knoten Hadoop-Daten gespeichert, an denen Daten verarbeitet werden. Die folgenden Dienste ermöglichen es Slave-Knoten, Daten zu speichern und zu verarbeiten:
-
NodeManager: Koordiniert die Ressourcen für einen einzelnen Slave-Knoten und meldet sich an den Ressourcen-Manager zurück.
-
ApplicationMaster: Verfolgt den Fortschritt aller Tasks, die im Hadoop-Cluster für eine bestimmte Anwendung ausgeführt werden. Für jede Clientanwendung stellt der Ressourcenmanager eine Instanz des ApplicationMaster-Dienstes in einem Container auf einem Slave-Knoten bereit. (Denken Sie daran, dass jeder Knoten, der den NodeManager-Dienst ausführt, für den Ressourcen-Manager sichtbar ist.)
-
Container: Eine Sammlung aller Ressourcen, die zum Ausführen einzelner Aufgaben für eine Anwendung erforderlich sind. Wenn eine Anwendung auf dem Cluster ausgeführt wird, plant der Ressourcenmanager die Aufgaben für die Anwendung als Containerdienste auf den Slave-Knoten des Clusters.
-
TaskTracker: Verwaltet die individuelle Zuordnung und reduziert Aufgaben, die auf einem Slave-Knoten für Hadoop 1-Cluster ausgeführt werden. In Hadoop 2 ist dieser Dienst veraltet und wurde durch YARN-Dienste ersetzt.
-
DataNode: Ein HDFS-Dienst, der es dem NameNode ermöglicht, Blöcke auf dem Slave-Knoten zu speichern.
-
RegionServer: Speichert Daten für das HBase-System. In Hadoop 2 verwendet HBase Hoya, wodurch RegionsServer-Instanzen in Containern ausgeführt werden können.
Hier führt jeder Slave-Knoten immer eine DataNode-Instanz (mit der HDFS Datenblöcke auf dem Slave-Knoten speichern und abrufen kann) und eine NodeManager-Instanz aus (die es dem Resource Manager ermöglicht, dem Slave-Knoten Anwendungstasks zur Verarbeitung zuzuweisen)… Die Containerprozesse sind einzelne Aufgaben für Anwendungen, die auf dem Cluster ausgeführt werden.
Jede laufende Anwendung verfügt über eine dedizierte ApplicationMaster-Task, die ebenfalls in einem Container ausgeführt wird. Sie verfolgt die Ausführung aller Tasks, die auf dem Cluster ausgeführt werden, bis die Anwendung beendet ist.
Bei HBase auf Hadoop 2 wird das Container-Modell weiterhin verwendet, wie Sie sehen können:
HBase auf Hadoop 2 wird vom Hoya Application Master initiiert, der Container für die HMaster-Services anfordert. (Sie benötigen mehrere HMaster-Dienste für Redundanz.) Der Hoya Application Master fordert auch Ressourcen für RegionServers an, die ebenfalls in speziellen Containern laufen.
Die folgende Abbildung zeigt die Dienste, die auf Hadoop 1-Slave-Knoten implementiert sind.
Bei Hadoop 1 führt jeder Slave-Knoten immer eine DataNode-Instanz (mit der HDFS Datenblöcke auf dem Slave-Knoten speichern und abrufen kann) und eine TaskTracker-Instanz aus (die es dem JobTracker ermöglicht, dem Slave-Knoten Zuordnungsaufgaben zuzuweisen und Aufgaben zu reduzieren). zum Bearbeiten).
Slave-Knoten haben eine feste Anzahl von Karten-Slots und reduzieren die Anzahl der Slots für die Ausführung von map bzw. reduce tasks. Wenn Ihr Cluster HBase ausführt, müssen mehrere Slave-Knoten einen RegionServer-Dienst ausführen. Je mehr Daten in HBase gespeichert werden, desto mehr RegionsServer-Instanzen werden benötigt.
Die Hardware-Kriterien für Slave-Knoten unterscheiden sich ziemlich von denen für Master-Knoten. Tatsächlich stimmen die Kriterien nicht mit denen in herkömmlichen Hardware-Referenzarchitekturen für Datenserver überein. Ein Großteil der Begeisterung um Hadoop ist auf die Verwendung von Standardhardware in den Designkriterien von Hadoop-Clustern zurückzuführen. Bedenken Sie jedoch, dass sich Commodity -Hardware nicht auf Consumer-Hardware bezieht.
Hadoop-Slave-Knoten benötigen weiterhin Hardware der Enterprise-Klasse, jedoch am unteren Ende des Kostenspektrums, insbesondere für die Speicherung.