In unserem vorherigen Blog haben wir die Hadoop-Einführung besprochen im Detail. In diesem Blog werden wir nun beantworten, was das Hadoop-Ökosystem ist und welche Rolle Hadoop-Komponenten spielen.
In diesem Tutorial zu Hadoop-Komponenten werden wir verschiedene Ökosystemkomponenten der Hadoop-Familie wie HDFS, MapReduce, YARN, Hive, HBase, Pig, Zookeeper usw. besprechen.
Alle diese Komponenten des Hadoop-Ökosystems werden zusammen mit ihren Funktionen und Verantwortlichkeiten besprochen.
Tutorial zum Hadoop-Ökosystem
Apache Hadoop ist das mächtigste Werkzeug von Big Data. Das Hadoop-Ökosystem dreht sich um die drei Hauptkomponenten HDFS, MapReduce und YARN. Abgesehen von diesen Hadoop-Komponenten gibt es auch einige andere Komponenten des Hadoop-Ökosystems, die eine wichtige Rolle bei der Verbesserung der Hadoop-Funktionalitäten spielen.
Lassen Sie uns nun die verschiedenen Hadoop-Komponenten im Detail verstehen.
a. HDFS
Verteiltes Hadoop-Dateisystem (HDFS) ist das primäre Speichersystem von Hadoop. HDFS speichert sehr große Dateien, die auf einem Cluster handelsüblicher Hardware ausgeführt werden.
Es folgt dem Prinzip, weniger große Dateien statt der großen Anzahl kleiner Dateien zu speichern. HDFS speichert Daten auch bei einem Hardwareausfall zuverlässig. Daher bietet es Zugriff auf die Anwendung mit hohem Durchsatz durch parallelen Zugriff.
Komponenten von HDFS:
- NameNode – Es fungiert als Master im Hadoop-Cluster. Namenode speichert Metadaten, d. h. die Anzahl der Blöcke, Replikate und andere Details. Metadaten sind im Speicher des Masters vorhanden. NameNode weist dem Slave-Knoten Aufgaben zu. Es sollte auf zuverlässiger Hardware bereitgestellt werden, da es das Herzstück von HDFS ist.
- Datenknoten – Es arbeitet als Slave im Hadoop-Cluster. In Hadoop HDFS ist DataNode für die Speicherung der eigentlichen Daten in HDFS verantwortlich. DataNode führt auch Lese- und Schreibvorgänge gemäß Anforderung für die Clients durch. DataNodes können auch auf handelsüblicher Hardware bereitgestellt werden.
b. MapReduce
Hadoop MapReduce ist die Datenverarbeitungsschicht von Hadoop. Es verarbeitet große strukturierte und unstrukturierte Daten, die in HDFS gespeichert sind. MapReduce verarbeitet auch eine riesige Datenmenge parallel.
Dies geschieht, indem der Job (vorgelegter Job) in eine Reihe unabhängiger Aufgaben (Sub-Job) aufgeteilt wird. In Hadoop funktioniert MapReduce, indem es die Verarbeitung in Phasen aufteilt:Map und Reduce.
- Karte – Es ist die erste Phase der Verarbeitung, in der wir den gesamten komplexen Logikcode spezifizieren.
- Reduzieren – Es ist die zweite Phase der Verarbeitung. Hier spezifizieren wir leichte Verarbeitung wie Aggregation/Summierung.
c. GARN
Hadoop YARN stellt das Ressourcenmanagement bereit. Es ist das Betriebssystem von Hadoop. Es ist also für die Verwaltung und Überwachung von Workloads und die Implementierung von Sicherheitskontrollen verantwortlich. Es ist eine zentrale Plattform zur Bereitstellung von Data-Governance-Tools über Hadoop-Cluster hinweg.
YARN ermöglicht mehrere Datenverarbeitungsmaschinen wie Echtzeit-Streaming, Stapelverarbeitung usw.
Bestandteile von GARN:
- Ressourcenmanager – Es ist eine Komponente auf Cluster-Ebene und wird auf dem Master-Computer ausgeführt. Daher verwaltet es Ressourcen und plant Anwendungen, die auf YARN ausgeführt werden. Es besteht aus zwei Komponenten:Scheduler &Application Manager.
- Knotenmanager – Es ist eine Komponente auf Knotenebene. Es läuft auf jeder Slave-Maschine. Es kommuniziert kontinuierlich mit Resource Manager, um auf dem Laufenden zu bleiben
d. Bienenstock
Apache Hive ist ein Open-Source-Data-Warehouse-System zum Abfragen und Analysieren großer Datensätze, die in Hadoop-Dateien gespeichert sind. Es verarbeitet strukturierte und halbstrukturierte Daten in Hadoop.
Hive unterstützt auch die Analyse großer Datensätze, die in HDFS gespeichert sind, und auch im Amazon S3-Dateisystem wird von Hive unterstützt. Hive verwendet die Sprache namens HiveQL (HQL), das SQL ähnelt. HiveQL übersetzt automatisch SQL-ähnliche Abfragen in MapReduce-Jobs.
e. Schwein
Es handelt sich um eine Hochsprachenplattform, die entwickelt wurde, um Abfragen für riesige Datensätze auszuführen, die in Hadoop HDFS gespeichert sind. PigLatin ist eine in Pig verwendete Sprache, die SQL sehr ähnlich ist.
Pig lädt die Daten, wendet die erforderlichen Filter an und gibt die Daten im erforderlichen Format aus. Pig wandelt auch alle Operationen in Map- und Reduce-Aufgaben um, die effektiv auf Hadoop verarbeitet werden.
Eigenschaften von Schwein:
- Erweiterbar – Pig-Benutzer können benutzerdefinierte Funktionen erstellen, um ihre speziellen Verarbeitungsanforderungen zu erfüllen.
- Selbstoptimierung – Da Pig dem System ermöglicht, sich automatisch zu optimieren. Der Benutzer kann sich also auf die Semantik konzentrieren.
- Verarbeitet alle Arten von Daten – Pig analysiert sowohl strukturiert als auch unstrukturiert.
f. HBase
Apache HBase ist eine NoSQL-Datenbank, die auf Hadoop ausgeführt wird. Es ist eine Datenbank, die strukturierte Daten in Tabellen speichert, die Milliarden von Zeilen und Millionen von Spalten haben können. HBase bietet auch Echtzeitzugriff zum Lesen oder Schreiben von Daten in HDFS.
Komponenten von HBase:
- HBase-Master – Es ist nicht Teil der eigentlichen Datenspeicherung. Aber es übernimmt die Verwaltung (Schnittstelle zum Erstellen, Aktualisieren und Löschen von Tabellen.).
- Regionsserver – Es ist der Worker-Knoten. Es verarbeitet Lese-, Schreib-, Aktualisierungs- und Löschanforderungen von Clients. Der Prozess des Regionsservers wird auch auf jedem Knoten im Hadoop-Cluster ausgeführt.
g. HCatalog
Es ist eine Tabellen- und Speicherverwaltungsschicht auf der Oberseite von Apache Hadoop. HCatalog ist eine Hauptkomponente von Hive. Daher ermöglicht es dem Benutzer, seine Daten in jedem Format und jeder Struktur zu speichern. Es unterstützt auch verschiedene Hadoop-Komponenten zum einfachen Lesen und Schreiben von Daten aus dem Cluster.
Vorteile von HCatalog:
- Bietet Transparenz für Datenbereinigungs- und Archivierungstools.
- Mit der Tabellenabstraktion befreit HCatalog den Benutzer vom Overhead der Datenspeicherung.
- Aktiviert Benachrichtigungen zur Datenverfügbarkeit.
i. Avro
Es ist ein Open-Source-Projekt, das Datenserialisierung und Datenaustauschdienste für Hadoop bereitstellt. Mithilfe der Serialisierung können Dienstprogramme Daten in Dateien oder Nachrichten serialisieren.
Es speichert auch Datendefinition und Daten zusammen in einer Nachricht oder Datei. Dadurch wird es Programmen leicht gemacht, Informationen, die in einer Avro-Datei oder -Nachricht gespeichert sind, dynamisch zu verstehen.
Avro bietet:
- Container-Datei, um persistente Daten zu speichern.
- Remoteprozeduraufruf.
- Reichhaltige Datenstrukturen.
- Kompaktes, schnelles, binäres Datenformat.
j. Sparsamkeit
Apache Thrift ist ein Software-Framework, das die Entwicklung skalierbarer sprachübergreifender Dienste ermöglicht. Thrift wird auch für die RPC-Kommunikation verwendet. Apache Hadoop führt viele RPC-Aufrufe durch, daher besteht die Möglichkeit, Thrift für die Leistung zu verwenden.
k. Bohren
Der Bohrer wird für die groß angelegte Datenverarbeitung verwendet. Das Design des Bohrers soll auf mehrere tausend Knoten skaliert werden und Petabytes an Daten abfragen. Es ist auch eine verteilte Abfrage-Engine mit geringer Latenz für große Datensätze.
Der Drill ist auch die erste verteilte SQL-Abfragemaschine, die ein schemafreies Modell hat.
Eigenschaften des Bohrers :
- Drillieren Sie dezentralisierte Metadaten – Drill hat keine zentralisierten Metadatenanforderungen. Drill-Benutzer müssen keine Tabellen in Metadaten erstellen und verwalten, um Daten abzufragen.
- Flexibilität – Drill bietet ein hierarchisches spaltenförmiges Datenmodell. Es kann komplexe, hochdynamische Daten darstellen und ermöglicht zudem eine effiziente Verarbeitung.
- Dynamische Schemaerkennung – Um den Abfrageausführungsprozess zu starten, benötigt Drill keine Typspezifikation für Daten. Stattdessen beginnt Drill mit der Verarbeitung der Daten in Einheiten, die als Datensatzstapel bezeichnet werden. Es erkennt auch Schemas während der Verarbeitung im laufenden Betrieb.
l. Mahout
Es ist ein Open-Source-Framework, das zum Erstellen eines skalierbaren Algorithmus für maschinelles Lernen verwendet wird. Sobald wir Daten in HDFS speichern, stellt mahout die Data-Science-Tools bereit, um automatisch aussagekräftige Muster in diesen Big Data-Sets zu finden.
m. Sqoop
Es wird hauptsächlich zum Importieren und Exportieren von Daten verwendet. Es importiert also Daten aus externen Quellen in verwandte Hadoop-Komponenten wie HDFS, HBase oder Hive. Es exportiert auch Daten aus Hadoop in andere externe Quellen. Sqoop arbeitet mit relationalen Datenbanken wie Teradata, Netezza, Oracle, MySQL.
n. Gerinne
Flume sammelt, aggregiert und verschiebt effizient eine große Datenmenge von ihrem Ursprung und sendet sie zurück an HDFS. Es hat eine sehr einfache und flexible Architektur, die auf Streaming-Datenflüssen basiert. Flume ist fehlertolerant, auch ein zuverlässiger Mechanismus.
Flume ermöglicht auch den Datenfluss von der Quelle in die Hadoop-Umgebung. Es verwendet ein einfaches erweiterbares Datenmodell, das die Online-Analyseanwendung ermöglicht. Daher können wir mit Flume die Daten von mehreren Servern sofort in Hadoop übertragen.
o. Ambari
Es ist eine Open-Source-Verwaltungsplattform. Es ist eine Plattform für die Bereitstellung, Verwaltung, Überwachung und Sicherung von Apache Hadoop-Clustern. Das Hadoop-Management wird einfacher, da Ambari eine konsistente, sichere Plattform für die Betriebskontrolle bietet.
Vorteile von Ambari:
- Vereinfachte Installation, Konfiguration und Verwaltung – Es kann Cluster in großem Maßstab einfach und effizient erstellen und verwalten.
- Zentralisierte Sicherheitseinrichtung – Ambari konfiguriert die Clustersicherheit auf der gesamten Plattform. Es reduziert auch die Komplexität der Verwaltung.
- In hohem Maße erweiterbar und anpassbar – Ambari ist äußerst erweiterbar, um benutzerdefinierte Dienste unter Verwaltung zu bringen.
- Vollständige Sichtbarkeit des Clusterzustands – Ambari stellt mit einem ganzheitlichen Überwachungsansatz sicher, dass der Cluster fehlerfrei und verfügbar ist.
S. Tierpfleger
Zookeeper in Hadoop ist ein zentralisierter Dienst. Es verwaltet Konfigurationsinformationen, Benennungen und bietet eine verteilte Synchronisation. Es bietet auch Gruppendienste an. Zookeeper verwaltet und koordiniert auch eine große Gruppe von Maschinen.
Vorteile von Zookeeper:
- Schnell – zookeeper ist schnell bei Workloads, bei denen Lesevorgänge für Daten häufiger sind als Schreibvorgänge. Das ideale Lese-/Schreibverhältnis beträgt 10:1.
- Bestellt – zookeeper führt Aufzeichnungen über alle Transaktionen, die auch für allgemeine Zwecke verwendet werden können
q. Oozie
Es ist ein Workflow-Scheduler-System zur Verwaltung von Apache Hadoop-Jobs. Es kombiniert mehrere Jobs nacheinander zu einer logischen Arbeitseinheit.
Daher ist das Oozie-Framework vollständig in den Apache Hadoop-Stack, YARN als Architekturzentrum, integriert. Es unterstützt auch Hadoop-Jobs für Apache MapReduce, Pig, Hive und Sqoop.
Oozie ist skalierbar und auch sehr flexibel. Man kann Jobs einfach starten, stoppen, unterbrechen und erneut ausführen. Daher macht es Oozie sehr einfach, fehlgeschlagene Workflows erneut auszuführen. Es ist auch möglich, einen bestimmten ausgefallenen Knoten zu überspringen.
Es gibt zwei grundlegende Arten von Oozie-Jobs:
- Oozie-Workflow – Es dient zum Speichern und Ausführen von Workflows, die aus Hadoop-Jobs bestehen, z. B. MapReduce, Pig, Hive.
- Oozie-Koordinator – Es führt Workflow-Jobs basierend auf vordefinierten Zeitplänen und der Verfügbarkeit von Daten aus.
Schlussfolgerung
Daher bietet das Hadoop-Ökosystem verschiedene Komponenten, die es so beliebt machen. Aufgrund dieser Hadoop-Komponenten sind jetzt mehrere Hadoop-Jobrollen verfügbar.
Ich hoffe, dieses Hadoop-Ökosystem-Tutorial hilft Ihnen sehr dabei, die Hadoop-Familie und ihre Rollen zu verstehen. Wenn Sie Fragen finden, teilen Sie uns dies bitte im Kommentarfeld mit.