Video: Big Data & Smart Data: Definition, Beispiel und praktischer Nutzen für Unternehmen 2024
Apache Hadoop ist eine freie Open-Source-Softwareplattform zum Schreiben und Ausführen von Anwendungen, die eine große Datenmenge für vorausschauende Analysen verarbeiten. Es ermöglicht eine verteilte parallele Verarbeitung großer Datenmengen, die aus verschiedenen Quellen erzeugt werden. Im Wesentlichen ist es ein leistungsfähiges Werkzeug zum Speichern und Verarbeiten von Big Data.
Hadoop speichert jede Art von Daten, strukturiert oder unstrukturiert, aus verschiedenen Quellen - und aggregiert diese Daten dann fast beliebig. Hadoop verarbeitet heterogene Daten mithilfe verteilter paralleler Verarbeitung - ein sehr effizientes Framework für die Analyse von Big Data. Kein Wunder, dass einige große Unternehmen Hadoop übernehmen, darunter Facebook, Yahoo!, Google, IBM, Twitter und LinkedIn.
Vor Hadoop konnten Unternehmen Big Data nicht nutzen, die nicht analysiert und fast unbrauchbar waren. Die Kosten für die Speicherung dieser Daten in einer proprietären relationalen Datenbank und die Erstellung eines strukturierten Formats um sie herum rechtfertigten nicht die Vorteile der Analyse und Nutzung dieser Daten.
Hadoop hingegen macht diese Aufgabe - zu einem Bruchteil der Kosten - nahtlos und ermöglicht es Unternehmen, wertvolle Erkenntnisse über die reichlich vorhandenen Daten zu gewinnen, die sie erworben haben und ansammeln.
Die Stärke von Hadoop liegt in der Handhabung verschiedener Arten von Daten: Text, Sprache, E-Mails, Fotos, Posts, Tweets. Hadoop kümmert sich um die Zusammenstellung dieser Daten in all ihrer Vielfalt und bietet Ihnen die Möglichkeit, alle Daten nach Belieben abzufragen.
Sie müssen kein Schema erstellen, bevor Sie Ihre Daten verstehen können. Mit Hadoop können Sie diese Daten in ihrem ursprünglichen Format abfragen.
Zusätzlich zur Verarbeitung großer Mengen unterschiedlicher Daten ist Hadoop fehlertolerant und verwendet einfache Programme, die die Planung der Verarbeitung auf mehrere Maschinen verteilen. Diese Programme können Hardwarefehler erkennen und eine Aufgabe an eine andere laufende Maschine umleiten. Durch diese Anordnung kann Hadoop unabhängig vom Hardwarefehler eine hohe Verfügbarkeit bereitstellen.
Hadoop verwendet zwei Hauptkomponenten (Unterprojekte), um seine Aufgabe zu erledigen: MapReduce und Hadoop Distributed File System. Die beiden Komponenten arbeiten kooperativ zusammen:
-
MapReduce : Die Implementierung von MapReduce durch Hadoop basiert auf Googles Forschungen zu Programmiermodellen zur Verarbeitung großer Datenmengen durch Unterteilen in kleine Aufgabenblöcke. MapReduce verwendet verteilte Algorithmen auf einer Gruppe von Computern in einem Cluster, um große Datensätze zu verarbeiten.Sie besteht aus zwei Funktionen:
-
Die Funktion Map (), die sich auf dem Master -Knoten (vernetzter Computer) befindet. Es teilt die Eingabeaufforderung oder Task in kleinere Subtasks auf, die dann an Worker-Knoten verteilt werden, die die kleineren Tasks verarbeiten und die Antworten an den Master-Knoten zurückgeben. Die Teilaufgaben werden parallel auf mehreren Computern ausgeführt.
-
Die Funktion Reduce () sammelt die Ergebnisse aller Unteraufgaben und kombiniert sie zu einem aggregierten Endergebnis, das als Antwort auf die ursprüngliche große Abfrage zurückgegeben wird.
-
-
Hadoop Distributed File System (HDFS) : HDFS repliziert die Datenblöcke auf anderen Computern in Ihrem Rechenzentrum (um die Zuverlässigkeit zu gewährleisten) und verwaltet die Übertragung von Daten an die verschiedenen Teile Ihres verteilten Systems.
Betrachten Sie eine Datenbank mit zwei Milliarden Menschen und gehen Sie davon aus, dass Sie die Anzahl der sozialen Freunde von Herrn X berechnen und nach ihren geografischen Standorten sortieren möchten. Das ist eine große Aufgabe.
Die Daten für zwei Milliarden Menschen könnten aus sehr unterschiedlichen Quellen wie sozialen Netzwerken, E-Mail-Kontaktadresslisten, Posts, Tweets, Browsing-Historien stammen - und das nur für Opener. Hadoop kann diese riesige, vielfältige Datenmenge zusammenfassen, damit Sie sie mit einer einfachen Abfrage untersuchen können.
Zum Lösen dieser Abfrage würden Sie MapReduce-Programmierfunktionen verwenden. Das Definieren von Map- und Reduce-Prozeduren macht sogar diesen großen Datensatz überschaubar. Mit den Werkzeugen, die das Hadoop-Framework bietet, würden Sie eine MapReduce-Implementierung erstellen, die die Berechnung als zwei Unteraufgaben ausführen würde:
-
Berechnen Sie die durchschnittliche Anzahl der sozialen Freunde von Mr. X.
-
Ordnen Sie die Freunde von Herrn X nach geografischem Standort an..
Ihr MapReduce-Implementierungsprogramm führt diese Teilaufgaben parallel aus, verwaltet die Kommunikation zwischen den Teilaufgaben und stellt die Ergebnisse zusammen. Von zwei Milliarden Menschen würden Sie wissen, wer die Online-Freunde von Herrn X sind.
Hadoop bietet eine Reihe von Kartenprozessoren an. Welche (s) Sie wählen, hängt von Ihrer Infrastruktur ab.
Jeder Ihrer Prozessoren verarbeitet eine bestimmte Anzahl von Datensätzen. Angenommen, jeder Prozessor verarbeitet eine Million Datensätze. Jeder Prozessor führt eine Map-Prozedur aus, die mehrere Datensätze von Schlüsselwertpaaren erzeugt, wobei G (Schlüssel) der geografische Standort einer Person (Land) und N (Wert) die Anzahl der Kontakte hat die Person.
Angenommen, jeder Map-Prozessor erzeugt viele Paare des Formulars, z. B. folgende:
Prozessorkarte # 1:
Prozessorkarte # 2:
Prozessorkarte # 3:
Prozessorkarte # 4:
Prozessorkarte # 5:
Prozessorkarte # 6:
In der Reduce-Phase ordnet Hadoop einer bestimmten Anzahl von Prozessoren eine Aufgabe zu: Führen Sie die Reduce-Prozedur aus, die die Werte der gleichen ein Endergebnis. In diesem Beispiel fasst die Reduce-Implementierung die Anzahl der Werte für jeden Schlüssel zusammen - geografische Position. Nach der Map-Phase ergibt die Reduce-Phase also Folgendes:
------ ----
Klar, Mr.X ist ein beliebter Typ - aber dies war ein sehr einfaches Beispiel dafür, wie MapReduce verwendet werden kann. Stellen Sie sich vor, Sie haben es mit einem großen Datensatz zu tun, in dem Sie komplexe Operationen ausführen möchten, z. B. das Bündeln von Milliarden von Dokumenten, bei denen der Vorgang und die Daten für eine einzelne Maschine zu groß sind. Hadoop ist das Werkzeug, das es zu beachten gilt.