Was ist Hadoop? Einführung, ArchiStruktur, Ökosystem, 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 auf Clustern von Standardcomputern verteilt sind. Standardcomputer sind günstig und weit verbreitet. Sie sind vor allem nützlich, um bei geringen Kosten eine höhere Rechenleistung 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 die 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 Programmiersprache wie JavaEin solches Programm verarbeitet Daten, die in Hadoop HDFS.
Weißt du es? Ein Computercluster besteht aus mehreren Verarbeitungseinheiten (Speicherplatte + Prozessor), die miteinander verbunden sind und als ein einziges System agieren.
Hadoop-Ökosystem und -Komponenten
Das folgende Diagramm zeigt verschiedene Komponenten im Hadoop-Ökosystem.
Apache Hadoop besteht aus zwei Teilprojekten –
- Hadoop MapReduce: MapReduce ist ein Rechenmodell und Software-Framework zum Schreiben von Anwendungen, die auf Hadoop ausgeführt werden. Diese MapReduce-Programme können enorme Datenmengen parallel auf großen Clustern von Rechenknoten verarbeiten.
- HDFS (Hadoop verteiltes Dateisystem): HDFS kümmert sich um den Speicherteil von Hadoop-Anwendungen. MapReduce-Anwendungen nutzen 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 hat einen Master-Slave ArchiTechnologie 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 zu speichern, um komplexe Berechnungen durchzuführen. Darüber hinaus sind alle Slave-Knoten mit einem Task Tracker und einem DataNode ausgestattet. Auf diese Weise können Sie die Prozesse mit dem NameNode bzw. dem 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 die Verarbeitungslogik (nicht die eigentlichen Daten) zu den Rechenknoten fließt, wird weniger Netzwerkbandbreite verbraucht. Dieses Konzept wird als Datenlokalitätskonzept Dies trägt dazu bei, die Effizienz von Hadoop-basierten Anwendungen zu steigern.
• Skalierbarkeit
HADOOP-Cluster können durch Hinzufügen zusätzlicher Clusterknoten problemlos beliebig skaliert werden und ermöglichen so das Wachstum großer Datenmengen. Zudem sind für die Skalierung keine Änderungen an der Anwendungslogik erforderlich.
• Fehlertoleranz
Das HADOOP-Ökosystem verfügt über eine Funktion zum Replizieren der Eingabedaten auf andere Clusterknoten. Auf diese Weise kann die Datenverarbeitung bei einem Clusterknotenausfall weiterhin fortgesetzt werden, indem auf einem anderen Clusterknoten gespeicherte Daten verwendet werden.
Netzwerktopologie in Hadoop
Die Topologie (Anordnung) des Netzwerks beeinflusst die Leistung des Hadoop-Clusters, wenn die Größe des Hadoop-Clusters zunimmt. Neben der Leistung muss man sich auch um die hohe Verfügbarkeit und den Umgang mit Fehlern kümmern. Um dies zu erreichen, nutzt die Clusterbildung von Hadoop die Netzwerktopologie.
Normalerweise ist die Netzwerkbandbreite ein wichtiger Faktor, der bei der Bildung eines Netzwerks berücksichtigt werden muss. Da die Messung der Bandbreite jedoch schwierig sein kann, wird ein Netzwerk in Hadoop als Baum dargestellt und die Entfernung zwischen den Knoten dieses Baums (Anzahl der Hops) wird als wichtiger Faktor bei der Bildung eines Hadoop-Clusters betrachtet. Hier ist die Entfernung zwischen zwei Knoten gleich der Summe ihrer Entfernungen zu ihrem nächsten gemeinsamen Vorgänger.
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 variiert je nach Standort der Prozesse. Das heißt, die verfügbare Bandbreite wird geringer, je weiter wir uns von … entfernen.
- Prozesse auf demselben Knoten
- Verschiedene Knoten im selben Rack
- Knoten auf verschiedenen Racks desselben Rechenzentrums
- Knoten in verschiedenen Rechenzentren