Direkt zum Hauptinhalt

Hadoop-Cluster

DATABRICKS KOSTENLOS TESTEN

Was ist ein Hadoop-Cluster?

Apache Hadoop ist ein Java-basiertes Open-Source-Softwareframework und eine Engine für parallele Datenverarbeitung. Es ermöglicht, dass Verarbeitungs-Tasks für Big Data Analytics in kleinere Tasks aufgeteilt werden, die mithilfe eines Algorithmus (wie dem MapReduce-Algorithmus) parallel ausgeführt werden können, wobei diese auf einem Hadoop-Cluster verteilt werden. Ein Hadoop-Cluster ist eine Ansammlung von Datenverarbeitungsumgebungen, sogenannten Knoten, die miteinander vernetzt sind, um diese Art paralleler Verarbeitungen an Big-Data-Datensätzen durchzuführen. Im Gegensatz zu anderen Datenverarbeitungsclustern sind Hadoop-Cluster für die Speicherung und Analyse großer Mengen strukturierter und unstrukturierter Daten in einer verteilten Datenverarbeitungsumgebung konzipiert. Ein weiteres Merkmal von Hadoop-Ökosystemen, das sie von anderen Datenverarbeitungsclustern unterscheidet, ist ihre einzigartige Struktur und Architektur. Hadoop-Cluster bestehen aus einem Netzwerk verbundener Master- und Slave-Knoten, die hochverfügbare, kostengünstige Standardhardware nutzen. Die Fähigkeit, Knoten linear zu skalieren und je nach Volumenbedarf schnell hinzuzufügen oder zu entfernen, macht sie gut geeignet für Jobs aus dem Bereich Big Data Analytics mit Datensätzen, die in ihrer Größe stark variieren.

Hadoop-Clusterarchitektur

Hadoop-Cluster bestehen aus einem Netzwerk von Master- und Worker-Knoten, die die verschiedenen Jobs im verteilten Hadoop-Dateisystem orchestrieren und ausführen. Die Master-Knoten verwenden in der Regel hochwertigere Hardware und umfassen einen NameNode, einen sekundären NameNode und einen JobTracker, wobei jeder Knoten auf einem separaten Computer ausgeführt wird. Die Worker-Knoten bestehen aus virtuellen Maschinen, die sowohl den DataNode- als auch den TaskTracker-Dienst auf Standardhardware ausführen und die eigentliche Arbeit der Speicherung und Verarbeitung des Jobs gemäß den Anweisungen der Master-Knoten erledigen. Der letzte Teil des Systems sind die Client-Knoten, die für das Laden der Daten und das Abrufen der Ergebnisse verantwortlich sind. Hadoop-Cluster bestehen aus drei verschiedenen Knotentypen: Master-Knoten, Worker-Knoten und Client-Knoten.

  • Master-Knoten sind für die Speicherung von Daten in HDFS und die Überwachung von wichtigen Vorgängen verantwortlich, beispielsweise für die Ausführung paralleler Datenverarbeitungen mit MapReduce.
  • Die Worker-Knoten umfassen die meisten virtuellen Maschinen in einem Hadoop-Cluster und übernehmen den Job, die Daten zu speichern und Datenverarbeitungen auszuführen. Jeder Worker-Knoten führt den DataNode- und TaskTracker-Dienst aus, die zum Empfangen der Anweisungen von den Master-Knoten verwendet werden.
  • Client-Knoten sind für das Laden der Daten in die Cluster verantwortlich. Client-Knoten übermitteln zunächst MapReduce-Jobs, die beschreiben, wie Daten verarbeitet werden müssen, und rufen dann die Ergebnisse ab, sobald die Verarbeitung abgeschlossen ist.

Wie groß sind Cluster in Hadoop?

Die Größe eines Hadoop-Clusters wird durch eine Reihe von Metriken bestimmt, die Speicher- und Datenverarbeitungsfunktionen für die Ausführung von Hadoop-Workloads definieren, nämlich:

  • Anzahl der Knoten: Anzahl der Master-Knoten, Anzahl der Edge-Knoten, Anzahl der Worker-Knoten.
  • Konfiguration jedes Knotentyps: Anzahl der Kerne pro Knoten, Arbeitsspeicher und Datenträger-Volume.

Was sind die Vorteile eines Hadoop-Clusters?

  • Hadoop-Cluster können die Verarbeitungsgeschwindigkeit vieler Jobs im Bereich Big Data Analytics steigern, da sie große Datenverarbeitungs-Tasks in kleinere Tasks aufteilen können, die parallel und verteilt ausgeführt werden können.
  • Hadoop-Cluster sind leicht skalierbar und es können schnell Knoten hinzugefügt werden, um den Durchsatz zu erhöhen und die Verarbeitungsgeschwindigkeit bei zunehmenden Datenblöcken aufrechtzuerhalten.
  • Durch den Einsatz kostengünstiger, hochverfügbarer Standardhardware lassen sich Hadoop-Cluster relativ einfach und kostengünstig einrichten und warten.
  • Hadoop-Cluster replizieren einen Datensatz im gesamten verteilten Dateisystem und sind so widerstandsfähig gegenüber Datenverlust und Ausfällen.
  • Hadoop-Cluster ermöglichen die Integration und Nutzung von Daten aus mehreren verschiedenen Quellsystemen und Datenformaten.
  • Zu Bewertungszwecken ist es möglich, Hadoop mithilfe einer Einzelknoteninstallation bereitzustellen.

Was sind die Herausforderungen eines Hadoop-Clusters?

  • Problem mit kleinen Dateien: Hadoop hat Probleme mit großen Mengen kleiner Dateien (standardmäßig kleiner als die Hadoop-Blockgröße von 128 MB oder 256 MB). Hadoop ist nicht dafür konzipiert, Big Data skalierbar zu unterstützen. Stattdessen funktioniert Hadoop gut, wenn eine kleine Anzahl großer Dateien vorhanden ist.  Wenn Sie die Menge kleiner Dateien erhöhen, wird letztendlich der NameNode überlastet, da er den Namespace für das System speichert.
  • Hoher Verarbeitungsaufwand: Lese- und Schreibvorgänge in Hadoop können besonders bei der Verarbeitung großer Datenmengen schnell sehr teuer werden. Dies alles ist darauf zurückzuführen, dass Hadoop nicht in der Lage ist, eine In-Memory-Verarbeitung durchzuführen, und dass stattdessen Daten vom und auf den Datenträger gelesen und geschrieben werden.
  • Es wird nur Batch-Verarbeitung unterstützt: Hadoop ist für kleine Mengen großer Dateien in Batches konzipiert. Dies hängt mit der Art und Weise zusammen, wie Daten erfasst und gespeichert werden, was alles erfolgen muss, bevor mit der Verarbeitung begonnen wird. Dies bedeutet letztendlich, dass Streaming-Daten nicht unterstützt werden und keine Echtzeitverarbeitung mit geringer Latenz möglich ist.
  • Iterative Verarbeitung: Hadoop verfügt über eine Datenflussstruktur, die in aufeinanderfolgenden Phasen aufgebaut ist, was eine iterative Verarbeitung oder Verwendung für ML unmöglich macht.

Zusätzliche Ressourcen

Zurück zum Glossar