Hadoop - Einführung

Hadoop ist ein in Java geschriebenes Apache-Open-Source-Framework, das die verteilte Verarbeitung großer Datenmengen über Computercluster mithilfe einfacher Programmiermodelle ermöglicht. Die Hadoop-Framework-Anwendung arbeitet in einer Umgebung, die verteilten Speicher und Berechnungen über mehrere Computercluster hinweg bereitstellt . Hadoop wurde entwickelt, um von einem einzelnen Server auf Tausende von Computern zu skalieren, von denen jeder lokale Berechnungen und Speicher bietet.

Hadoop-Architektur

Im Kern hat Hadoop zwei Hauptschichten, nämlich -

  • Verarbeitungs- / Berechnungsschicht (MapReduce) und
  • Speicherebene (Hadoop Distributed File System).

Karte verkleinern

MapReduce ist ein paralleles Programmiermodell zum Schreiben verteilter Anwendungen, die bei Google entwickelt wurden, um große Datenmengen (Multi-Terabyte-Datensätze) auf großen Clustern (Tausende von Knoten) von Standardhardware zuverlässig und fehlertolerant zu verarbeiten. Das MapReduce-Programm läuft auf Hadoop, einem Open-Source-Framework von Apache.

Hadoop Distributed File System

Das verteilte Hadoop-Dateisystem (HDFS) basiert auf dem Google-Dateisystem (GFS) und bietet ein verteiltes Dateisystem, das für die Ausführung auf Standardhardware ausgelegt ist. Es hat viele Ähnlichkeiten mit vorhandenen verteilten Dateisystemen. Die Unterschiede zu anderen verteilten Dateisystemen sind jedoch erheblich. Es ist sehr fehlertolerant und für den Einsatz auf kostengünstiger Hardware ausgelegt. Es bietet Zugriff auf Anwendungsdaten mit hohem Durchsatz und eignet sich für Anwendungen mit großen Datenmengen.

Neben den beiden oben genannten Kernkomponenten enthält das Hadoop-Framework auch die folgenden zwei Module:

  • Hadoop Common - Dies sind Java-Bibliotheken und Dienstprogramme, die von anderen Hadoop-Modulen benötigt werden.

  • Hadoop YARN - Dies ist ein Framework für die Jobplanung und die Verwaltung von Clusterressourcen.

Wie funktioniert Hadoop?

Es ist ziemlich teuer, größere Server mit umfangreichen Konfigurationen zu erstellen, die eine Verarbeitung in großem Maßstab ermöglichen. Alternativ können Sie jedoch viele Standardcomputer mit einer einzelnen CPU als ein einziges funktionales verteiltes System miteinander verbinden, und praktisch können die Cluster-Computer den Datensatz lesen parallel und bieten einen viel höheren Durchsatz. Darüber hinaus ist es billiger als ein High-End-Server. Dies ist also der erste Motivationsfaktor für die Verwendung von Hadoop, der auf Cluster- und kostengünstigen Computern ausgeführt wird.

Hadoop führt Code auf einem Cluster von Computern aus. Dieser Prozess umfasst die folgenden Kernaufgaben, die Hadoop ausführt:

  • Die Daten werden zunächst in Verzeichnisse und Dateien unterteilt. Dateien werden in Blöcke mit einheitlicher Größe von 128 MB und 64 MB (vorzugsweise 128 MB) unterteilt.

  • Diese Dateien werden dann zur weiteren Verarbeitung auf verschiedene Clusterknoten verteilt.

  • HDFS befindet sich über dem lokalen Dateisystem und überwacht die Verarbeitung.

  • Blöcke werden zur Behandlung von Hardwarefehlern repliziert.

  • Überprüfen, ob der Code erfolgreich ausgeführt wurde.

  • Durchführen der Sortierung zwischen der Karte und Reduzieren von Stufen.

  • Senden der sortierten Daten an einen bestimmten Computer.

  • Schreiben der Debugging-Protokolle für jeden Job.

Vorteile von Hadoop

  • Mit dem Hadoop-Framework kann der Benutzer verteilte Systeme schnell schreiben und testen. Es ist effizient, verteilt die Daten und die Arbeit automatisch auf die Maschinen und nutzt wiederum die zugrunde liegende Parallelität der CPU-Kerne.

  • Hadoop ist nicht auf Hardware angewiesen, um Fehlertoleranz und Hochverfügbarkeit (FTHA) bereitzustellen. Die Hadoop-Bibliothek selbst wurde entwickelt, um Fehler auf der Anwendungsebene zu erkennen und zu behandeln.

  • Server können dynamisch zum Cluster hinzugefügt oder daraus entfernt werden, und Hadoop arbeitet ohne Unterbrechung weiter.

  • Ein weiterer großer Vorteil von Hadoop ist, dass es nicht nur Open Source ist, sondern auch auf allen Plattformen kompatibel ist, da es auf Java basiert.