Was ist Hadoop? Einführung, Architektur, Ökosystem, Komponenten

Inhaltsverzeichnis:

Anonim

Was ist Hadoop?

Apache Hadoop ist ein Open-Source-Software-Framework, mit dem Datenverarbeitungsanwendungen entwickelt werden, die in einer verteilten Computerumgebung ausgeführt werden.

Mit HADOOP erstellte Anwendungen werden auf großen Datenmengen ausgeführt, die auf Cluster von Standardcomputern verteilt sind. Commodity-Computer sind billig und weit verbreitet. Diese sind hauptsächlich nützlich, um eine größere Rechenleistung bei geringen 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 verteiltes Hadoop-Dateisystem bezeichnet wird . Das Verarbeitungsmodell basiert auf dem Konzept "Datenlokalität" , 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 höheren Sprache wie Java geschrieben ist. Ein solches Programm verarbeitet in Hadoop HDFS gespeicherte Daten.

Wissen Sie? Der Computercluster besteht aus mehreren Verarbeitungseinheiten (Speicherplatte + Prozessor), die miteinander verbunden sind und als ein einziges System fungieren.

In diesem Tutorial lernen Sie:

  • Hadoop EcoSystem und Komponenten
  • Hadoop-Architektur
  • Eigenschaften von 'Hadoop'
  • Netzwerktopologie in Hadoop

Hadoop EcoSystem und Komponenten

Das folgende Diagramm zeigt verschiedene Komponenten im Hadoop-Ökosystem.

Apache Hadoop besteht aus zwei Teilprojekten -

  1. Hadoop MapReduce: MapReduce ist ein Rechenmodell und ein Software-Framework zum Schreiben von Anwendungen, die auf Hadoop ausgeführt werden. Diese MapReduce-Programme können enorme Daten parallel auf großen Clustern von Rechenknoten verarbeiten.
  2. HDFS ( Hadoop Distributed File System ): HDFS kümmert sich um den Speicherteil von Hadoop-Anwendungen. MapReduce-Anwendungen verwenden Daten aus 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 am besten für MapReduce und sein verteiltes Dateisystem HDFS bekannt ist, wird der Begriff auch für eine Familie verwandter Projekte verwendet, die unter das Dach von Distributed Computing und umfangreicher Datenverarbeitung fallen. Weitere Hadoop-Projekte bei Apache sind Hive, HBase, Mahout, Sqoop, Flume und ZooKeeper.

Hadoop-Architektur

Hochrangige Hadoop-Architektur

Hadoop verfügt über eine Master-Slave-Architektur für die Datenspeicherung und verteilte Datenverarbeitung mit MapReduce- und HDFS-Methoden.

NameNode:

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

DataNode:

Mit DataNode können Sie den Status eines HDFS-Knotens verwalten und mit den Blöcken interagieren

MasterNode:

Mit dem Masterknoten können Sie Daten parallel mit Hadoop MapReduce verarbeiten.

Slave-Knoten:

Die Slave-Knoten sind die zusätzlichen Maschinen im Hadoop-Cluster, auf denen Sie Daten speichern können, um komplexe Berechnungen durchzuführen. Darüber hinaus wird der gesamte Slave-Knoten mit dem Task Tracker und einem DataNode geliefert. Auf diese Weise können Sie die Prozesse mit dem NameNode bzw. dem Job Tracker synchronisieren.

In Hadoop kann das Master- oder Slave-System in der Cloud oder vor Ort eingerichtet werden

Eigenschaften von 'Hadoop'

• Geeignet für die 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 die Verarbeitungslogik (nicht die tatsächlichen Daten) zu den Rechenknoten fließt, wird weniger Netzwerkbandbreite verbraucht. Dieses Konzept wird als Datenlokalitätskonzept bezeichnet, mit dessen Hilfe die Effizienz von Hadoop-basierten Anwendungen gesteigert werden kann.

• Skalierbarkeit

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

• Fehlertoleranz

Das HADOOP-Ökosystem bietet die Möglichkeit, die Eingabedaten auf andere Clusterknoten zu replizieren. Auf diese Weise kann die Datenverarbeitung im Falle eines Clusterknotenausfalls weiterhin unter Verwendung von Daten fortgesetzt werden, die auf einem anderen Clusterknoten gespeichert sind.

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 Leistung muss auch auf die hohe Verfügbarkeit und Behandlung von Fehlern geachtet werden. Um dieses Hadoop zu erreichen, verwendet die Clusterbildung die Netzwerktopologie.

In der Regel ist die Netzwerkbandbreite ein wichtiger Faktor, der bei der Bildung eines Netzwerks berücksichtigt werden muss. Da das Messen der Bandbreite jedoch schwierig sein kann, wird in Hadoop ein Netzwerk als Baum dargestellt, und der Abstand zwischen den Knoten dieses Baums (Anzahl der Sprünge) wird als wichtiger Faktor bei der Bildung des Hadoop-Clusters 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 tatsächlich Jobs ausführt. Hier besteht das Rechenzentrum aus Racks und das Rack aus Knoten. Die für Prozesse verfügbare Netzwerkbandbreite hängt vom Standort der Prozesse ab. 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