Was ist Hadoop? Einführung, Architektur, EcosSystem, Komponenten

Was ist Hadoop?

Apache Hadoop ist ein Open-Source-Software-Framework zur Entwicklung von Datenverarbeitungsanwendungen, die in einer verteilten Computerumgebung ausgeführt werden.

Mit HADOOP erstellte Anwendungen werden auf großen Datensätzen ausgeführt, die über Cluster von Standardcomputern verteilt sind. Standardcomputer sind günstig und weit verbreitet. Diese dienen vor allem dazu, eine höhere Rechenleistung bei geringeren Kosten zu erzielen.

Ähnlich wie Daten, die sich in einem lokalen Dateisystem eines Personalcomputersystems befinden, befinden sich Daten in Hadoop in einem verteilten Dateisystem, das als a bezeichnet wird Verteiltes Hadoop-Dateisystem. Das Verarbeitungsmodell basiert auf „Datenlokalität“ Konzept, bei dem Rechenlogik an Clusterknoten (Server) gesendet wird, die Daten enthalten. Diese Rechenlogik ist nichts anderes als eine kompilierte Version eines Programms, das in einer Hochsprache wie Java geschrieben ist. Ein solches Programm verarbeitet Daten, die in Hadoop HDFS gespeichert sind.

Weißt du es? Ein Computercluster besteht aus einer Reihe mehrerer Verarbeitungseinheiten (Speicherplatte + Prozessor), die miteinander verbunden sind und als ein einziges System fungieren.

Hadoop EcoSSystem und Komponenten

Das folgende Diagramm zeigt verschiedene Komponenten im Hadoop ecosSystem-

Hadoop EcoSSystem und Komponenten

Apache Hadoop besteht aus zwei Teilprojekten –

  1. Hadoop MapReduce: MapReduce ist ein Rechenmodell und Software-Framework zum Schreiben von Anwendungen, die auf Hadoop ausgeführt werden. Diese MapReduce-Programme sind in der Lage, enorme Datenmengen parallel auf großen Clustern von Rechenknoten zu verarbeiten.
  2. HDFS (Hadoop verteiltes Dateisystem): HDFS kümmert sich um den Speicherteil von Hadoop-Anwendungen. MapReduce-Anwendungen verbrauchen Daten von HDFS. HDFS erstellt mehrere Replikate von Datenblöcken und verteilt sie auf Rechenknoten in einem Cluster. Diese Verteilung ermöglicht zuverlässige und extrem schnelle Berechnungen.

Obwohl Hadoop vor allem für MapReduce und sein verteiltes Dateisystem HDFS bekannt ist, wird der Begriff auch für eine Familie verwandter Projekte verwendet, die unter den Oberbegriff verteiltes Rechnen und große Datenverarbeitung fallen. Weitere Hadoop-bezogene Projekte unter Apache einschließen sind Hive, HBase, Mahout, Sqoop, Flume und ZooKeeper.

Hadoop-Architektur

Hadoop-Architektur
High-Level-Hadoop-Architektur

Hadoop verfügt über eine Master-Slave-Architektur zur Datenspeicherung und verteilten Datenverarbeitung MapReduce und HDFS-Methoden.

Namensknoten:

NameNode repräsentiert alle Dateien und Verzeichnisse, die im Namespace verwendet werden

Datenknoten:

DataNode hilft Ihnen, den Status eines HDFS-Knotens zu verwalten und ermöglicht Ihnen die Interaktion mit den Blöcken

Masterknoten:

Der Masterknoten ermöglicht Ihnen die parallele Verarbeitung von Daten mithilfe von Hadoop MapReduce.

Slave-Knoten:

Die Slave-Knoten sind die zusätzlichen Maschinen im Hadoop-Cluster, die es Ihnen ermöglichen, Daten für die Kommunikation zu speichernplex Berechnungen. Darüber hinaus sind alle Slave-Knoten mit einem Task Tracker und einem DataNode ausgestattet. Dadurch können Sie die Prozesse mit dem NameNode bzw. Job Tracker synchronisieren.

Bei Hadoop können Master- oder Slave-Systeme in der Cloud oder vor Ort eingerichtet werden

Merkmale von „Hadoop“

• Geeignet für Big-Data-Analyse

Da Big Data in der Regel verteilt und unstrukturiert ist, eignen sich HADOOP-Cluster am besten für die Analyse von Big Data. Da es die Verarbeitungslogik (nicht die eigentlichen Daten) ist, die zu den Rechenknoten fließt, wird weniger Netzwerkbandbreite verbraucht. Dieses Konzept wird als bezeichnet Datenlokalitätskonzept Dies trägt dazu bei, die Effizienz von Hadoop-basierten Anwendungen zu steigern.

• Skalierbarkeit

HADOOP-Cluster können durch das Hinzufügen zusätzlicher Clusterknoten problemlos beliebig skaliert werden und ermöglichen so das Wachstum von Big Data. Außerdem erfordert die Skalierung keine Änderungen an der Anwendungslogik.

• Fehlertoleranz

HADOOP ecosDas System verfügt über die Möglichkeit, die Eingabedaten auf andere Clusterknoten zu replizieren. Auf diese Weise kann im Falle eines Ausfalls eines Clusterknotens die Datenverarbeitung weiterhin unter Verwendung der auf einem anderen Clusterknoten gespeicherten Daten fortgesetzt werden.

Netzwerktopologie in Hadoop

Die Topologie (Anordnung) des Netzwerks wirkt sich auf die Leistung des Hadoop-Clusters aus, wenn die Größe des Hadoop-Clusters zunimmt. Neben der Performance muss man sich auch um die hohe Verfügbarkeit und den Umgang mit Ausfällen kümmern. Um dieses Hadoop zu erreichen, nutzt die Clusterbildung die Netzwerktopologie.

Netzwerktopologie in Hadoop

Typischerweise ist die Netzwerkbandbreite ein wichtiger Faktor, der beim Aufbau eines Netzwerks berücksichtigt werden muss. Da es jedoch schwierig sein kann, die Bandbreite zu messen, wird ein Netzwerk in Hadoop als Baum dargestellt und der Abstand zwischen den Knoten dieses Baums (Anzahl der Sprünge) wird als wichtiger Faktor bei der Bildung von Hadoop-Clustern angesehen. Hier ist der Abstand zwischen zwei Knoten gleich der Summe ihrer Entfernung zu ihrem nächsten gemeinsamen Vorfahren.

Der Hadoop-Cluster besteht aus einem Rechenzentrum, dem Rack und dem Knoten, der die eigentlichen Aufgaben ausführt. Hier besteht das Rechenzentrum aus Racks und das Rack aus Knoten. Die für Prozesse verfügbare Netzwerkbandbreite variiert je nach Standort der Prozesse. Das heißt, die verfügbare Bandbreite wird geringer, wenn wir uns von-

  • Prozesse auf demselben Knoten
  • Verschiedene Knoten im selben Rack
  • Knoten auf verschiedenen Racks desselben Rechenzentrums
  • Knoten in verschiedenen Rechenzentren