MapReduce und Java zur Datenverarbeitung nutzen So funktioniert Apache Hadoop

Autor / Redakteur: Thomas Joos / Nico Litzel |

Geht es im Unternehmen um die Verarbeitung großer Datenmengen, also den Umgang mit Big Data, kommen Verantwortliche kaum darum herum, sich mit Hadoop zu beschäftigen. In diesem Beitrag zeigen wir, um was es sich bei Hadoop handelt und was Verantwortliche wissen müssen.

Anbieter zum Thema

Hadoop ist, einfach ausgedrückt, ein Programmiergerüst (Framework) auf Basis von Java und dem bekannten MapReduce-Algorithmus von Google. Durch die Apache-Lizenz steht das Produkt generell kostenlos zur Verfügung und wurde von Microsoft sogar in Microsoft Azure integriert. Hier trägt Hadoop die Bezeichnung HDInsight. Auch in den Amazon Web Services ist Hadoop dabei, doch dazu später mehr. Die Aufgabe von Hadoop ist es, sehr große Datenmengen – bis in den Petabye-Bereich hinein – effizient in Clustern zu verarbeiten und zu berechnen.

Was kann Hadoop?

Hadoop bietet den Vorteil, vollkommen kostenlos, auf Basis von Linux, Big-Data-Infrastrukturen im Unternehmen bereitzustellen und dabei enorm skalierbar zu sein. Durch die Notwendigkeit, auch extrem große Datenmengen verarbeiten zu können, lassen sich Cluster mit tausenden Knoten aufbauen. Die Entwickler nutzen in Hadoop hauptsächlich den MapReduce-Algorithmus von Google.

Bei dieser Technologie lassen sich riesige Datenmengen parallel auf zahlreichen Rechnern verarbeiten. Das funktioniert nach einem recht einfachen Prinzip: Hadoop teilt enorme Datenmengen in kleine Päckchen auf, die auf mehreren Clusterknoten parallel verarbeitet und später wieder zusammengeführt werden. Google nutzt MapReduce, um die enormen Datenmengen der Suchmaschine zu verarbeiten. Das bedeutet, dass es nahezu unmöglich ist, an die Grenze der Möglichkeiten von Hadoop zu stoßen.

Woraus besteht Hadoop?

Hadoop besteht immer aus einem mehr oder weniger großen Cluster. Ein Knoten übernimmt die Steuerung (NameNode), die anderen die Berechnungen (DataNodes). Die Clusterknoten werden durch die einzelnen Hadoop-Komponenten gesteuert und verwaltet.

Hadoop besteht aus mehreren Komponenten, die zusammenarbeiten. Grundlage ist „Hadoop Common“. Dieser Bereich stellt die Schnittstelle für alle anderen Bestandteile dar und verbindet Hadoop mit dem Dateisystem der Rechner. Außerdem enthält dieser Part die notwendigen Skripte und Bibliotheken für die Zusammenarbeit der Rechner im Cluster.

Um die enormen Datenmengen zu speichern wird das „Hadoop Distributed File System“ (HDFS) genutzt. Dieses kann riesige Datenmengen und Dateien über mehrere Server hinweg speichern und bildet die Speicher-Grundlage für den Hadoop-Cluster. Dieser Teil ist vor allem dafür verantwortlich, dass die großen Datenmengen effizient auf den Clustern verteilt und gespeichert werden können. Nur wenige andere Dateisysteme, wie etwa IBMs General Parallel File System (GPFS), sind dazu in der Lage.

MapReduce

Der dritte wichtige Bestandteil ist die eigene Integration von MapReduce. Diese Funktion stellt den Rechenbereich zur Verarbeitung der Daten dar, die mit HDFS gespeichert und über die Skripte in Hadoop Common verarbeitet werden. MapReduce teilt große Datenmengen in kleinere Teile auf, verteilt diese auf die Server im Hadoop-Cluster und kann diese nach der Berechnung wieder zusammenführen. Basis ist HDFS, welches die Speicherung übernimmt. MapReduce sorgt für die Berechnung der Daten zwischen den Clusterknoten.

Um einen Hadoop-Cluster aufzubauen, ist keine besondere Hardware notwendig. Administratoren können mit Standard-Rechnern den Cluster erstellen, Basis ist Linux. Allerdings sollten die Rechner über genügend Kapazität verfügen, um die Datenpakete von MapReduce berechnen zu können.

Ein interessanter Einstieg in Hadoop kann auch über Microsoft Azure und den HDInsight-Dienst erfolgen. Diesen können Administratoren kostenlos einen Monat testen. Vorteil dabei ist, dass kein eigener Cluster aufgebaut werden muss und alle Serverdienste und Berechnungen in der Cloud durchgeführt werden.

Was kostet Hadoop?

Hadoop steht über die Apache-Lizenz vollkommen kostenlos zur Verfügung. Es sind keine zusätzlichen Lizenzen notwendig. Als Basisbetriebssystem bietet sich Linux an, welches in den meisten Distributionen ebenfalls kostenlos zur Verfügung steht.

Große Softwarehersteller wie IBM, Oracle und EMC bieten, genau wie Microsoft, eigene Serverdienste an, die auf Hadoop aufbauen und das Produkt noch erweitern. Amazon bietet in AWS ebenfalls einen Hadoop-Cluster an. Dieser trägt die Bezeichnung „Elastic MapReduce“. Die Daten dieses Dienstes lassen sich in der AWS-Cloud in Simple Storage Services (S3) speichern.

Sobald Administratoren einen Hadoop-Cluster in AWS erstellen, lassen sich auch die Daten im dazu gehörigen Cloud-Speicher ablegen. Die Einrichtung erfolgt auf Basis eines Assistenten, Linux-Know-how ist beim Einsatz von Hadoop in AWS also nicht notwendig. In Amazon Web Services wird die Apache Hadoop-Version verwendet, die allerdings für die Verarbeitung in AWS optimiert wurde. Zur Auswahl stehen aber auch andere Distributionen von Hadoop, zum Beispiel MapR in verschiedenen Versionen. Diese Distribution lässt sich auch ohne AWS nutzen.

MapR ist eine Drittanbieter-Distribution von Hadoop. MapR unterstützt das Network File System (NFS) und Open Database Connectivity (ODBC). Außerdem ist die Distribution sehr robust und kann defekte Knoten zuverlässig reparieren. Zusätzlich lassen sich sehr große Datenmengen auch zwischen Clustern spiegeln, nicht nur zwischen einzelnen Knoten. In AWS sind verschiedene Editionen von MapR verfügbar.

Hadoop erweitern

Die beschriebenen Komponenten, Hadoop Common, HDFS und MapReduce, werden häufig auch als „Hadoop Core“ bezeichnet, da hier die Grundkomponenten zusammengefasst werden. Unternehmen, die mehr Möglichkeiten brauchen, zum Beispiel effiziente Abfragen benötigen oder In-Memory-Datenbanken verwenden wollen, finden auf dem Markt zahlreiche Zusatzprojekte, die auf Hadoop aufbauen.

Beispiele dafür sind Hadoop YARN und Apache Hive. Auch Apache Spark spielt in diesem Zusammenhang eine wichtige Rolle. Alle diese Projekte ergänzen Hadoop um weitere Funktionen und erweitern die Funktionen.

(ID:42928560)