Ecosistema Hadoop | Hadoop für Big Data und Data Engineering

Inhalt

Überblick

  • Hadoop gehört zu den beliebtesten Tools im Bereich Data Engineering und Big Data
  • Hier ist eine Einführung in alles, was Sie über das Hadoop-Ökosystem wissen müssen.

Einführung

Heutzutage, wir haben mehr als 4 eine Milliarde Internetnutzer. In Bezug auf Rohdaten, so sieht das bild aus:

9.176 Tweets pro Sekunde

1.023 Pro Sekunde hochgeladene Instagram-Bilder

5.036 Skype-Anrufe pro Sekunde

86,497 Google-Suchen pro Sekunde

86,302 YouTube-Videos, die pro Sekunde angesehen werden

2.957.983 Versendete E-Mails pro Sekunde

und vieles mehr…

Das ist die Datenmenge, mit der wir es derzeit zu tun haben: tolle! Es wird geschätzt, dass am Ende des 2020 wird produziert haben 44 Zettabyte an Daten. Das ist 44 * 10 ^ 21!

Diese riesige Datenmenge, die mit hoher Geschwindigkeit und in allen möglichen Formaten generiert wird, nennt man heute Big Data. Es ist jedoch nicht möglich, diese Daten in den traditionellen Systemen zu speichern, die wir seit mehr als 40 Jahre. Um mit diesen Big Data umzugehen, wir brauchen ein viel komplexeres Framework, das nicht nur aus einem besteht, aber in mehreren Komponenten, die unterschiedliche Operationen ausführen.

das-hadoop-ökosystem verstehen-3138484

Wir bezeichnen dieses Framework als Hadoop und zusammen mit all seinen Komponenten, Anruf Ecosistema Hadoop. Aber weil es so viele Komponenten in diesem Hadoop-Ökosystem gibt, Manchmal kann es wirklich schwierig sein, wirklich zu verstehen und sich daran zu erinnern, was jede Komponente tut und wo sie in dieser großen Welt passt.

Dann, In diesem Artikel, Wir werden versuchen, dieses Ökosystem zu verstehen und seine Komponenten aufzuschlüsseln.

Inhaltsverzeichnis

  1. Problem mit traditionellen Systemen
  2. Was ist Hadoop??
  3. Komponenten des Hadoop-Ökosystems
    1. HDFS (Verteiltes Dateisystem Hadoop)
    2. Kleine Karte
    3. HILO
    4. HBase
    5. Schweinefleisch
    6. Bienenstock
    7. Sqoop
    8. Künstlicher Kanal
    9. Kafka
    10. Tierpfleger
    11. Funke – Funke
  4. Phasen der Big-Data-Verarbeitung

Problem mit traditionellen Systemen

Durch traditionelle Systeme, Ich meine Systeme wie relationale Datenbanken und Data Warehouses. Organisationen haben sie in der Vergangenheit verwendet 40 Jahre, um Ihre Daten zu speichern und zu analysieren. Die heute anfallenden Daten können jedoch aus folgenden Gründen von diesen Datenbanken nicht verarbeitet werden::

  • Die meisten der heute generierten Daten sind halbstrukturiert oder unstrukturiert. Herkömmliche Systeme sind jedoch darauf ausgelegt, nur strukturierte Daten mit gut gestalteten Zeilen und Spalten zu verarbeiten.
  • Beziehungsdatenbanken sind vertikal skalierbar, was bedeutet, dass Sie mehr Verarbeitung hinzufügen müssen, Speicher und Speicherung auf demselben System. Das kann sehr teuer werden
  • Die heute gespeicherten Daten befinden sich in verschiedenen Silos. Sie zu sammeln und auf Muster zu analysieren kann eine sehr schwierige Aufgabe sein.

Dann, Wie gehen wir mit Big Data um? Hier kommt Hadoop ins Spiel!!

Was ist Hadoop??

Auch die Leute bei Google standen vor den oben genannten Herausforderungen, wenn sie Seiten im Internet ranken wollten.. Sie fanden, dass relationale Datenbanken sehr teuer und unflexibel sind. Dann, hat eine eigene neuartige Lösung gefunden. Sie schufen die Google-Dateisystem (GFS).

GFS ist ein verteiltes Dateisystem, das die Nachteile herkömmlicher Systeme überwindet. Läuft auf kostengünstiger Hardware und bietet Parallelisierung, Skalierbarkeit und Zuverlässigkeit. Dies war das Sprungbrett für die Entwicklung von Apache Hadoop.

Apache Hadoop ist ein Open-Source-Framework, das auf dem Dateisystem von Google basiert und mit Big Data in einer verteilten Umgebung umgehen kann.. Diese verteilte Umgebung besteht aus einer Gruppe von Maschinen, die eng zusammenarbeiten, um den Eindruck einer einzelnen Maschine im Betrieb zu erwecken..

Hier sind einige der wichtigen Hadoop-Eigenschaften, die Sie kennen sollten:

  • Hadoop ist hoch skalierbar weil es die Daten verteilt verarbeitet
  • Im Vergleich zur vertikalen Skalierung in RDBMS, Hadoop-Angebote horizontale Skala
  • Erstellen und speichern Sie dabei Datenreplikate Fehlertoleranz
  • Ist wirtschaftlich Da alle Knoten des Cluster Es handelt sich um grundlegende Hardware, die nichts anderes als billige Maschinen ist
  • Hadoop verwendet die Datenlokalitätskonzept die Daten auf den Knoten zu verarbeiten, auf denen sie gespeichert sind, anstatt die Daten über das Netzwerk zu verschieben, dadurch weniger Verkehr
  • Kann Umgang mit jeder Art von Daten: strukturiert, halbstrukturiert und unstrukturiert. Dies ist heute extrem wichtig, da die meisten unserer Daten (E-Mails, Instagram, Twitter, IoT-Geräte, etc.) kein definiertes Format haben.

Jetzt, Schauen wir uns die Komponenten des Hadoop-Ökosystems an.

Komponenten des Hadoop-Ökosystems

hadoop-ökosystem-1-6779878

In diesem Abschnitt, Wir werden die verschiedenen Komponenten des Hadoop-Ökosystems diskutieren.

HDFS (Hadoop verteiltes Dateisystem)

hdfs-1-8953056

Es ist die Speicherkomponente von Hadoop, die Daten in Form von Dateien speichert.

Jede Datei ist in Blöcke von unterteilt 128 MB (konfigurierbar) und speichert sie auf verschiedenen Maschinen im Cluster.

Es hat eine Master-Slave-Architektur mit zwei Hauptkomponenten: Knoten Name und Datenknoten.

  • Knoten benennen ist der primäre Knoten und es gibt nur einen pro Cluster. Ihre Aufgabe ist es, zu wissen, wo sich jeder Block, der zu einer Datei gehört, im Cluster befindet.
  • Datenknoten ist er Slave-Knoten , in dem die Datenblöcke gespeichert werden, und es gibt mehr als einen pro Cluster. Ihre Aufgabe ist es, die Daten bei Bedarf abzurufen. Bleibt durch Herzschläge in ständigem Kontakt mit dem Namensknoten.

Kleine Karte

mapreduce-7061792

Umgang mit Big Data, Hadoop basiert auf Algoritmo MapReduce von Google eingeführt und erleichtert die Verteilung eines Jobs und dessen parallele Ausführung in einem Cluster. Grundsätzlich, teilt eine einzelne Aufgabe in mehrere Aufgaben auf und verarbeitet diese auf verschiedenen Maschinen.

In einfachen Worten, arbeitet nach dem Prinzip des Teilens und Herrschens und führt Prozesse auf Maschinen aus, um den Netzwerkverkehr zu reduzieren.

Es hat zwei wichtige Phasen: Karte und Verkleinern.

hadoop-mapreduce-working-7773273

Kartographische Phase Filter, gruppieren und ordnen Sie die Daten. Die Eingabedaten werden in mehrere aufgeteilt Divisionen. Jede Kartenaufgabe arbeitet an einem parallelen Datenausschnitt auf verschiedenen Computern und generiert ein Schlüssel-Wert-Paar. Der Ausgang dieser Phase wird durch den Hausaufgaben reduzieren und ist bekannt als die Phase reduzieren. Daten hinzufügen, fasst das Ergebnis zusammen und speichert es in HDFS.

HILO

Hadoop-Garn-1-8796831

GARN o Yet Another Resource Negotiator verwaltet die Ressourcen im Cluster und verwaltet die Anwendungen über Hadoop. Ermöglicht die Verarbeitung und Ausführung von in HDFS gespeicherten Daten durch verschiedene Datenverarbeitungs-Engines, als Stapelverarbeitung, Flow-Verarbeitung, interaktive Verarbeitung, Grafikbearbeitung und vieles mehr. Dies erhöht die Effizienz beim Einsatz von YARN.

HBase

apache-hbase-2798645

HBase ist ein NoSQL-Datenbank spaltenbasiert. Es läuft auf HDFS und kann jede Art von Daten verarbeiten. Ermöglicht Echtzeitverarbeitung und Lesevorgänge / zufällige Schreibvorgänge auf den Daten.

Schweinefleisch

Apache-Schwein-4938034

Schwein Es wurde entwickelt, um große Datensätze zu analysieren und die Schwierigkeit des Schreibens von Karten und der Reduzierung von Funktionen zu überwinden. Es besteht aus den Komponenten: Pig Latin y Pig Engine.

Pig Latin ist eine SQL-ähnliche Skriptsprache. Pig Engine ist die Laufzeit, auf der Pig Latin läuft. Im Inneren, Code, der in Pig geschrieben wurde, wird in Karte verkleinern und macht es Programmierern, die Java nicht fließend beherrschen, sehr einfach.

Bienenstock

Apache-Hive-6501025

Bienenstock ist ein verteiltes Datenspeichersystem, das von Facebook entwickelt wurde. Ermöglicht einfaches Lesen, Schreiben und Verwalten von Dateien in HDFS. Es verfügt über eine eigene Abfragesprache für den als Hive Querying Language bekannten Zweck (HQL), was SQL sehr ähnlich ist. Dies macht es für Programmierer sehr einfach, MapReduce-Funktionen mit einfachen HQL-Abfragen zu schreiben..

Sqoop

apache-sqoop-4753001

Viele Anwendungen speichern Daten immer noch in relationalen Datenbanken, was sie zu einem Datenquelle sehr wichtig. Deswegen, Sqoop spielt eine wichtige Rolle bei der Übertragung von Daten aus relationalen Datenbanken in HDFS.

In Sqoop geschriebene Befehle werden intern in MapReduce-Aufgaben umgewandelt, die in HDFS ausgeführt werden. Funktioniert mit fast allen relationalen Datenbanken wie MySQL, Postgres, SQLite, etc. Kann auch verwendet werden, um Daten von HDFS nach RDBMS zu exportieren.

Künstlicher Kanal

Apache-Kanal-7540138

Gerinne ist ein Open-Source-Dienst, zuverlässig und verfügbar, das zum Sammeln verwendet wird, Effizientes Hinzufügen und Verschieben großer Datenmengen aus mehreren Datenquellen zu HDFS. Kann Daten in Echtzeit und im Batch-Modus sammeln. Hat eine flexible Architektur und ist fehlertolerant mit mehreren Wiederherstellungsmechanismen.

Kafka

apache-kafka-4289029

Es gibt viele Anwendungen, die Daten generieren, und eine proportionale Anzahl von Anwendungen, die diese Daten verbrauchen. Aber sie einzeln zu verbinden ist eine schwierige Aufgabe. Hier kommt Kafka ins Spiel. Es gehört zu den Anwendungen, die Daten generieren (Hersteller) und Anwendungen, die Daten verbrauchen (Verbraucher).

Kafka wird verteilt und partitioniert, Replikation und integrierte Fehlertoleranz. Es kann Streaming-Daten verarbeiten und ermöglicht es Unternehmen auch, Daten in Echtzeit zu analysieren.

Oozie

oozie-1045335

Oozie ist ein Workflow-Planungssystem, das es Benutzern ermöglicht, Aufträge zu verknüpfen, die auf verschiedenen Plattformen wie MapReduce geschrieben wurden, Bienenstock, Schwein, etc. Mit Oozie können Sie einen Job im Voraus planen und eine Pipeline einzelner Jobs erstellen, die nacheinander oder parallel ausgeführt werden, um eine größere Aufgabe zu erledigen.. Zum Beispiel, Sie können Oozie verwenden, um ETL-Operationen an Daten durchzuführen und die Ausgabe dann in HDFS zu speichern.

Tierpfleger

Apache-Zookeeper-2590938

In einem Hadoop-Cluster, Das Koordinieren und Synchronisieren von Knoten kann eine herausfordernde Aufgabe sein. Deswegen, Tierpfleger Es ist das perfekte Werkzeug, um das Problem zu lösen.

Es ist ein Open-Source-Dienst, verteilt und zentralisiert, um Konfigurationsinformationen zu verwalten, benennen, Bereitstellung verteilter Synchronisation und Bereitstellung von Gruppendiensten im gesamten Cluster.

Funke – Funke

apache-funken-3617551

Spark ist ein alternatives Framework zu Hadoop in Scala, unterstützt aber verschiedene in Java geschriebene Anwendungen, Python, etc. Im Vergleich zu MapReduce, bietet In-Memory-Verarbeitung, die eine schnellere Verarbeitung darstellt. Zusätzlich zur Stapelverarbeitung von Hadoop, kann auch Echtzeitverarbeitung verarbeiten.

Was ist mehr, Spark hat sein eigenes Ökosystem:

Funken-Ökosystem-3649745

  • Funkenkern ist die Hauptlaufzeit für Spark und andere darauf aufbauende APIs
  • API von Spark SQL ermöglicht das Abfragen strukturierter Daten, die in DataFrames oder Hive-Tabellen gespeichert sind
  • Streaming-API ermöglicht Spark, Daten in Echtzeit zu verarbeiten. Es kann problemlos in eine Vielzahl von Datenquellen wie Flume integriert werden, Kafka und Twitter.
  • MLlib ist eine skalierbare Bibliothek für maschinelles Lernen, mit der Sie Data-Science-Aufgaben ausführen und gleichzeitig die Spark-Eigenschaften nutzen können
  • GraphX ist eine Grafikberechnungs-Engine, mit der Benutzer erstellen können, strukturierte Daten interaktiv in skalierte Grafiken umwandeln und argumentieren und wird mit einer Bibliothek gängiger Algorithmen geliefert

Phasen der Big-Data-Verarbeitung

Mit so vielen Komponenten innerhalb des Hadoop-Ökosystems, kann ziemlich einschüchternd und schwer zu verstehen sein, was die einzelnen Komponenten bewirken. Deswegen, Es ist einfacher, einige der Komponenten basierend auf ihrer Position in der Big-Data-Verarbeitungsphase zu gruppieren.

Big-Data-Verarbeitungsstufen-1854353

  • Gerinne, Kafka und Sqoop werden verwendet, um Daten aus externen Quellen in HDFS aufzunehmen
  • HDFS ist das Speicherlaufwerk von Hadoop. Sogar importierte Daten von Hbase werden in HDFS gespeichert
  • MapReduce und Spark werden verwendet, um die Daten in HDFS zu verarbeiten und verschiedene Aufgaben auszuführen
  • Schwein, Hive und Spark werden verwendet, um die Daten zu analysieren.
  • Oozie hilft bei der Planung von Aufgaben. Da es mit verschiedenen Plattformen funktioniert, in allen Phasen verwendet.
  • Zookeeper synchronisiert die Cluster-Knoten und wird auch in allen Phasen verwendet.

Abschließende Anmerkungen

Ich hoffe, dieser Artikel war hilfreich, um Big Data zu verstehen, warum herkömmliche Systeme damit nicht umgehen können und was die wichtigen Komponenten des Hadoop-Ökosystems sind.

Ich ermutige Sie, einige weitere Artikel zu Big Data zu lesen, die Ihnen möglicherweise hilfreich sind:

Abonniere unseren Newsletter

Wir senden Ihnen keine SPAM-Mail. Wir hassen es genauso wie du.

Datenlautsprecher