Back to top

Grundlagen von Hadoop und MapReduce

Kenntnisse der grundlegenden Techniken des Big Data werden für Programmierer immer wichtiger. Gleichzeitig müssen auch Mitarbeiter in nicht technischen Geschäftsabteilungen verstehen, was Hadoop leisten kann und was nicht.

DAS PROBLEM MIT BIG DATA

Wir leben im Zeitalter von Big Data. Es ist nicht leicht, das gesamte Volumen der elektronisch gespeicherten Daten zu beziffern. 2013 überschlugen Analysten die Größe des „Digitalen Universums“ mit geschätzten 4,4 Zettabyte. Sie gehen weiterhin davon aus, dass diese Datenmenge bis zum Jahr 2020 auf 44 Zettabyte angestiegen sein wird – oder etwas umgangssprachlicher ausgedrückt, gut 44 Milliarden Terabyte. Diese Datenflut kommt aus einer Vielzahl Quellen. Einige Beispiele:

  • Die New Yorker Börse generiert jeden Tag gut vier Terabyte Daten durch neue Transaktionen.
  • Facebook hostet geschätzte 240 Milliarden Bilder, die Datenmenge wächst um 7 Petabyte pro Monat.
  • Ancestry.com, eine Website für Ahnenforschung, speichert gut 10 Petabyte Daten.
  • In den Internet Archives liegen gut 18,5 Petabyte Daten.
  • Der Large Hadron Collider verarbeitet jeden Tag ein Petabyte Daten - das entspricht etwa 210,000 DVDs.

 

ZUGRIFFSZEIT IST VON ENTSCHEIDENDER BEDEUTUNG 

Das Problem ist, dass zwar die Speicherkapazität von Festplatten in den letzten Jahren massiv gestiegen ist, die Zugriffsgeschwindigkeit (die Geschwindigkeit, mit der Daten von dem Laufwerk gelesen werden) in Relationen jedoch nicht mithalten konnte. 1990 könnte eine typische Festplatte 1,4 GB speichern und hatte eine Übertragungsgeschwindigkeit von 4,4 MB/s. Also konnte man den gesamten Inhalt der Festplatte in knapp fünf Minuten auslesen lassen. Heutzutage, mehr als 20 Jahre später, sind Festplatten mit einem Terabyte Standard, die typische Übertragungsgeschwindigkeit beträgt inzwischen um die 100 MB/s. Damit dauert es mehr als zweieinhalb Stunden, um die gesamten Daten zu lesen.

Der offensichtliche Weg, Zugriffszeiten zu reduzieren, ist, von mehreren Laufwerken gleichzeitig zu lesen. Wenn wir jetzt 100 parallel geschaltete Laufwerke hätten, auf denen je ein Hundertstel der Daten liegt, könnten wir ein Terabyte Daten in weniger als zwei Minuten auslesen.

Nur ein Prozent der Kapazität jeder Festplatte zu nutzen wäre natürlich sehr verschwenderisch. Das kann man vermeiden, indem man einfach viele verschiedene Datensätze auf demselben Disk-Array speichert. Damit würden viele Nutzer den Speicherplatz teilen, dafür kämen alle in den Genuss schnellerer Zugriffsraten. Da die Zugriffe statistisch gesehen nicht zeitgleich erfolgen, würden die verschiedenen Nutzer sich gegenseitig auch nicht groß stören. Genau das wird in Big Data-Speichersystemen wie HDFS (Hadoop Distributed File System) geboten.

Aber Big Data bietet noch mehr als nur eine einfache Zugriffsmöglichkeit.

 

VERTEILTE VERARBEITUNG

Hadoop MapReduce ist ein Software-Framework zur Erstellung von Anwendungen, die große Datensätze parallel verarbeiten. Diese Datensätze können damit zuverlässig und fehlertolerant auf preisgünstigen Computerclustern gespeichert werden.

Bei MapReduce werden die eingehenden Datensätze in unabhängige Abschnitte zerlegt („Map“), die dann in verschiedenen Knoten des Clusters parallel verarbeitet werden. Das Framework sortiert dann den Output jedes Abschnitts und verbindet diese wieder („Reduced“). Normalerweise werden sowohl der Input als auch der Output der Verarbeitung in einem verteilten Dateisystem gespeichert.

Typischerweise werden die Knoten, welche die Verarbeitung übernehmen, und die verteilten Dateiknoten, auf denen die Datenabschnitte liegen, zum selben Serversystem gehören. Anders ausgedrückt laufen das MapReduce-Framework und das Hadoop Distributed File System (HDFS) auf demselben Servercluster. Diese Konfiguration ermöglicht es dem Framework, Aufgaben effizient für die Knoten zu planen, auf denen die Daten bereits vorliegen, um so eine hohe gesammelte Transferbandbreite im gesamten Cluster zu erreichen.

Das ist kurz zusammengefasst, was Hadoop bietet; eine zuverlässige, skalierbare Plattform für die Aufbewahrung und Analyse von großen Datensätzen. Weiterhin wird für die hohe Verfügbarkeit keine besonders robuste Hardware benötigt, das System ist vielmehr so entworfen, dass mögliche Hardwareausfälle frühzeitig erkannt und umgehend angesprochen werden. Damit bietet das System selbst auf relativ preisgünstigen Servern einen hochgradig verfügbaren Dienst.

 

EIN FRAMEWORK FÜR VIELE ANWENDUNGEN

Wer an Hadoop denkt, sieht dabei primär die Möglichkeiten für die Datenanalyse, sowie Anwendungen, die Einblicke zur Unterstützung von Entscheidungen bringen. Dabei kann jedoch jede Anwendung, die Aufbewahrung und Verarbeitung großer Datensätze erfordert, von Hadoop profitieren. So finden wir bei Search Technologies beispielsweise Hadoop sehr nützlich, um hochgradig akkurate Suchanwendungen zu erstellen.

 

AUF HADOOP EINLASSEN

Das Hadoop-Framework wird in Java implementiert, Anwendungen für MapReduce können in Java oder jeder JVM-basierten Sprache entwickelt werden. Das System ist so entworfen, dass es von einem einzelnen Server bis hin zu tausenden von Rechnern skaliert werden kann, von denen jeder lokale Datenaufbewahrung und Verarbeitung bietet. Weiterhin ist Hadoop kostengünstig, weil es auf preisgünstiger Hardware läuft und ein Open-Source-Framework nutzt. Unternehmen wie Cloudera bieten kommerzielle Pakete und Unterstützung für Produktionssysteme an. 

Wer sich mit Java auskennt, kann auch unser Hadoop-Tutorial kostenlos herunterladen und damit die erste Anwendung mit MapReduce erstellen und ausführen. Wenn Sie ein konkretes Anwendungsziel im Blick haben und technisches Know-How benötigen, können Sie uns gerne für eine informelle Besprechung kontaktieren. Search Technologies bietet sachkundige Implementierungsleistungen für Hadoop-Projekte.

- Arun

0