Database
 sql >> Datenbank >  >> RDS >> Database

Eine Einführung in Hadoop und Big Data

Der Umgang mit Tonnen von Daten erfordert eine besondere Vorkehrung. Herkömmliche Computertechniken reichen nicht aus, um eine Flut von Daten zu bewältigen, insbesondere wenn sie aus mehreren Quellen stammen. Bei Big Data sprechen wir von enormen Ausmaßen – gemessen in Zettabytes, Exabytes oder Millionen von Petabytes oder Milliarden von Terabytes. Das Framework namens Hadoop wird allgemein verwendet, um einige der Probleme mit dem Big Data-Management zu lösen. Dieser Artikel versucht, eine einführende Vorstellung von Hadoop im Lichte von Big Data zu vermitteln.

Entwicklung

Bei einem Urknall passiert nichts. Die Entstehung und Entwicklung von Hadoop erfolgt schrittweise und entsprechend dem Bedarf der Stunde im Umgang mit Big Data. Kurz gesagt, es verdankt seinen Ursprung dem Apache Nutch-Projekt von Doug Cutting im Jahr 2003, insbesondere am Anfang der Code-Teil davon. Die Genesis wurde aus Google File System (GFS) entwickelt, einem Papier, das im Oktober 2003 veröffentlicht wurde und das ein anderes Papier namens MapReduce:Simplified Data Processing on Large Clusters beeinflusste. Der Code für HDFS in Hadoop wurde 2006 aus dem Apache Nutch-Projekt herausgelöst und ist stark von den GFS- und MapReduce-Algorithmen beeinflusst. Und die Tatsache, dass der Name „Hadoop“ von dem ausgestopften Elefantenspielzeug von Cuttings Sohn stammt, spiegelt eindeutig die Idee wider, dass sich ein Elefant im Raum befindet, den Hadoop eindeutig ansprechen oder mit dem er fertig werden möchte.

In aller Kürze

Heute hat sich Hadoop von seinen monolithischen Anfängen zu einer Softwarebibliothek entwickelt, einem Framework zur Entwicklung von Anwendungen, die eine verteilte Verarbeitung riesiger Datenmengen erfordern, die auf Computerclustern liegen, und die einfache Programmiermodelle verwenden. Es kann von einem einzelnen Server auf Tausende von Maschinen skaliert werden. Die Idee ist, Berechnung und Speicherung auf mehrere Computer zu verteilen, um die Verarbeitung großer Datensätze zu nutzen. Die Bibliothek hat die Fähigkeit, Fehler auf der Ebene der Anwendungsschicht zu erkennen, sodass der Programmierer sie behandeln und Dienste auf einem Cluster von Computern bereitstellen kann, anstatt den Fehler auf eine oder mehrere niedrigere Ebenen zu übertragen, wo dies schwieriger wird verwalten oder überwinden.

Hadoop ist daher eine Kombination aus Tools und Open-Source-Bibliotheken, die von Apache unterstützt werden, um Anwendungen für verteiltes Computing zu erstellen, die äußerst zuverlässig und skalierbar sind.

Wie es funktioniert

Es gibt drei Möglichkeiten, wie Hadoop im Wesentlichen mit Big Data umgeht:

  • Das erste Problem ist die Lagerung. Die Daten werden auf mehreren Rechenmaschinen in einer verteilten Umgebung gespeichert, wo sie parallel verarbeitet werden können, um Zeit und Ressourcen zu sparen. Die Daten werden in einer Umgebung namens Hadoop Distributed File System (HDFS) gespeichert , das verwendet wird, um Daten in mehreren Formaten über Computer-Cluster hinweg zu speichern. Dazu teilt es Daten in Blöcke auf und speichert sie über verschiedene Datenknoten hinweg. Es verwendet eine Technik namens horizontale Skalierung zusätzliche Datenknoten zu vorhandenen HDFS-Clustern gemäß den Anforderungen hinzuzufügen. Dadurch wird die Nutzung vorhandener Ressourcen maximiert, anstatt bei Bedarf eine neue hinzuzufügen.
  • Das zweite Problem besteht darin, die Vielfalt der Daten zu berücksichtigen. HDFS ist in der Lage, alle Arten von Daten zu speichern, sei es strukturiert, halbstrukturiert oder unstrukturiert. Es gibt keine Schemavalidierung vor dem Dumping. Einmal geschriebene Daten können problemlos mehrfach gelesen werden.
  • Das dritte Problem betrifft die Verarbeitung und den Zugriff auf die gespeicherten Daten. In dieser Hinsicht kommt der MapReduce-Algorithmus zur Rettung, bei dem die Verarbeitung auf Slave-Knoten verteilt wird, um parallel zu arbeiten, und das Ergebnis an den Master-Knoten zurückgesendet wird. Der Masterknoten führt die Ergebnisse zusammen, bevor er das endgültige Ergebnis liefert. Dieser Teil wird vom YARN übernommen, das für die parallele Verarbeitung von in HDFS gespeicherten Daten ausgelegt ist.

Es gibt viele komplizierte Teile, aber genau das macht Hadoop auf den Punkt gebracht. Die Idee der Module würde weitere Einblicke geben.

Module

Apache Hadoop Project besteht aus sechs Modulen. Die ersten vier sind wie folgt:

  • Hadoop Common :Dies besteht aus Dienstprogrammen, die häufig von Hadoop verwendet werden, und unterstützt andere Hadoop-Module. Es ist auch als Hadoop Core bekannt und ist zusammen mit HDFS, YARN und MapReduce ein wesentlicher Bestandteil des Ökosystems. In diesem Teil geht Hadoop davon aus, dass Hardware fehleranfällig ist und alle notwendigen Mittel bereitgestellt werden, damit ein Programmierer Fehler in Software automatisch handhaben kann.
  • Hadoop Distributed File System (HDFS) :Ein verteiltes Dateisystem, das eine Vielzahl von Dateien in einer verteilten Umgebung aufnehmen kann. Es zerlegt die Dateien in Blöcke und speichert sie über Knoten in einer verteilten Architektur. Es bietet eine horizontale Skalierung anstelle einer vertikalen Skalierung für zusätzliches Clustering. Es ist sehr fehlertolerant und kostengünstig in Bezug auf die Hardwarebereitstellungsfähigkeiten.
  • Hadoop YARN :Dies ist die CPU des Hadoop-Frameworks. Mit zwei Hauptkomponenten namens NodeManager und Ressourcenmanager , führt YARN alle Verarbeitungsaktivitäten wie Ressourcenzuweisung, Aufgabenplanung und Clusterverwaltung durch.
  • Hadoop MapReduce :Dies ist ein Framework, um alle parallelen Berechnungen durchzuführen. MapReduce ist ein paralleles Programmiermodell zur Verarbeitung von Daten in einer verteilten Umgebung. Es wird idealerweise verwendet, um verteilte Anwendungen zu schreiben, die große Datenmengen über Cluster von handelsüblicher Hardware hinweg effizient verarbeiten können. Es unterteilt den Prozess in zwei Phasen, die als Map bezeichnet werden und Reduzieren , wo die Aufgabe des Mappers liegt Klasse soll die Eingabe nehmen, tokenisieren, abbilden und sortieren. Die Ausgabe wird dann zur Eingabe für den Reduzierer Klasse, die nach übereinstimmenden Paaren sucht und diese reduziert. Es gibt Schlüssel-Wert-Paare für Eingabe und Ausgabe in jeder Phase, und der Typ des Paars wird vom Programmierer bestimmt.

Kürzlich wurden zwei neue Unterprojekte hinzugefügt:

  • Hadoop-Ozon :Es ist ein skalierbarer, redundanter und verteilter Objektspeicher für Hadoop. Abgesehen von der Skalierung auf Milliarden von Objekten unterschiedlicher Größe kann Ozone in containerisierten Umgebungen wie Kubernetes und YARN effektiv funktionieren. Es basiert auf einer hochverfügbaren, replizierten Blockspeicherschicht namens Hadoop Distributed Data Store (HDDS) . [Ein Ausschnitt. Klicken Sie hier, um mehr zu finden.]
  • Hadoop-U-Boot :Eine Engine für maschinelles Lernen für Hadoop. Es ist ein Projekt, das es einem Infrastrukturingenieur/Datenwissenschaftler ermöglicht, Deep-Learning-Anwendungen (Tensorflow, Pytorch usw.) auf einer Ressourcenverwaltungsplattform (wie YARN) auszuführen. [Ein Ausschnitt. Klicken Sie hier, um mehr zu finden.]

Schlussfolgerung

Hadoop hat einen erheblichen Einfluss auf die Suche, den Protokollierungsprozess, das Data Warehousing und die Big-Data-Analyse vieler großer Organisationen wie Amazon, Facebook, Yahoo usw. Es ist eine One-Stop-Lösung zum Speichern einer riesigen Datenmenge jeglicher Art, begleitet von skalierbarer Verarbeitungsleistung, um praktisch unbegrenzte gleichzeitige Jobs zu nutzen. Kurz gesagt, die Popularität von Hadoop ist zu einem großen Teil seiner fehlertoleranten, skalierbaren, kostengünstigen und schnellen Fähigkeit zu verdanken.