Hadoop


Apache Hadoop ist ein quelloffenes, skalierbares Framework, das die Speicherung und Verarbeitung von sehr großen Datenmengen im Petabytebereich auf verteilten Rechnersystemen – sogenannten Computerclustern – erlaubt. Unternehmen wie Facebook, AOL, Adobe, Amazon, Yahoo, Baidu oder IBM nutzen es, um rechenintensive Aufgaben in den verschiedensten Bereichen zu erledigen. Beispielsweise in der Webanalyse, beim Behavioral Targeting oder bei diversen Big Data-Problemen. Gerade die Probleme, die durch Big Data aufgeworfen werden, sollen durch Hadoop gelöst werden können.

Allgemeine Informationen zum Thema

Hadoop basiert auf Java und wird von der Apache Software Foundation als Top-Level-Project betreut und weiterentwickelt. Derzeit liegt das Framework in der Version 2.7.0 vor. Durch die Java-Basis kann das Framework auf Standardhardware betrieben werden und ist nicht auf kostenintensive SAN-Lösungen (storage attached networks) angewiesen. Je größer die Datenmengen sind, desto schwieriger wird es, diese zu verarbeiten. Der Ansatz bei Hadoop unterscheidet sich deshalb grundlegend von solchen, die versuchen Big Data auf einem klassischen Hochleistungscomputer zu bearbeiten. Hadoop bricht die Daten herunter und teilt sie auf.

Hadoop wurde von Doug Cutting und Mike Cafarella in den Jahren 2004 und 2005 für die Suchmaschine Nutch entwickelt. Hintergrund für das Hadoop-Projekt war die Veröffentlichung eines Papers von Google, in dem der MapReduce-Algorithmus vorgestellt wurde. Er ermöglicht die gleichzeitige Verarbeitung von großen Datenmengen durch eine Aufteilung der Rechnerkapazitäten auf Cluster von Computern oder Servern. Auch Googles File System spielt hier eine zentrale Rolle, da die parallele Verarbeitung von Daten in Sachen Speicherung eine spezielle Dateiverwaltung erfordert. Cutting erkannte die Bedeutung dieser Entwicklungen und nutzte die Erkenntnisse als Inspiration für die Technologie von Hadoop.[1]

Funktionsweise

Die Systemarchitektur von Hadoop besteht aus vier wichtigen Modulen, die während der Verarbeitung und Speicherung der Daten ineinandergreifen und teilweise aufeinander aufbauen.

  • HDFS: Ein Modul ist das Hadoop Distributed File System (kurz HDFS), das die Voraussetzung für den MapReduce-Algorithmus bildet, da verteilte Rechnersysteme eine spezielle Dateiverwaltung erfordern, um alle Ressourcen optimal auszunutzen.
  • MapReduce: Als verteiltes Rechnersystem bildet MapReduce von Google eines der zentralen Merkmale von Hadoop. MapReduce besteht aus einem JobTacker, der Jobs an verfügbare Ressourcen delegiert, und einem TaskTracker, der die Jobs entgegennimmt und an sogenannte Knoten weiterleitet. Der TaskTracker befindet sich in der Regel möglichst nah an dem Ort, wo sich auch die zu bearbeitenden Daten befinden und reduziert so die Netzwerkauslastung des Knotensystems. Jeder Knoten ist dabei eine Rechnereinheit. Dies sind konventionelle Computer, die auf Linux basieren. Das Besondere an MapReduce ist die Organisation von JobTracker und TaskTrackern. Letztere werden auch als Slaves bezeichnet, wobei der JobTracker und ein TaskTracker eine Mastereinheit bilden. Der Master delegiert die Aufgaben; die Slaves bearbeiten sie.
  • YARN: Die neueste Version von MapReduce wird auch als YARN oder MapReduce 2.0 (Mrv2) bezeichnet, um ein verbessertes Ressourcen- und Aufgaben-Management zu kennzeichnen. Mit YARN (Yet another Ressource Negotiator) wird die Arbeit auf Cluster verteilt, indem es zwei JobTracker gibt. Der ResourceManager (RM) ist für die globale Koordination zuständig, der ApplicationMaster (AM) regelt die Aufgaben im Hinblick auf einzelne Anwendungen.
  • Hadoop Common: Die bereits erwähnten Kernmodule von Hadoop werden durch ein Software-Framework ergänzt. Hierzu gehören zahlreiche Bibliotheken und Anwendungen, die sich teilweise stark unterscheiden. Sowohl HDFS als auch MapReduce oder YARN sind auf diese Standard-Bibliotheken angewiesen.
  • Hadoop Projects: Je nach Anforderungsprofil des Big-Data-Problems können unterschiedliche Projekte verwendet werden. So bietet Hive eine Erweiterung an Funktionalitäten, um Hadoop als Data Warehouse zu benutzen. Auch Ambari, Avro, Cassandra, Cukwa, Hbase, Mahout, Pics, Spark, Tez und Zookeeper erweitern Hadoop um spezielle Funktionen und Anwendungen. All diese Projekte stehen in direktem Bezug zur Apache Software Foundation und sind unter Apache-Lizenzen verfügbar. Teilweise existieren noch proprietäre Erweiterungen, die von Oracle oder IBM entwickelt werden. So erweitert Big Data SQL von Oracle das Hadoop-Framework um Abfragen für relationale SQL-Datenbanken, und mit IBM's InfoSphere BigInsights können Cluster durch mehrere Klienten oder Mandanten genutzt werden.[2]

Beispiele

Facebook nutzt Hadoop, um Kopien der internen Protokolle und Datenquellen zu speichern, die in sogenannten dimensionalen Data Warehouses vorliegen. Das Unternehmen verwendet diese Daten als eine Quelle für die Berichterstattung und deren Auswertung im Hinblick auf maschinelles Lernen. Mit zwei großen Clustern von 12 Petabyte und 3 Petabyte ist Facebook ein sogenannter Heavy-User von Hadoop – ähnlich wie Ebay, Yahoo oder Twitter.[3]

Bedeutung für die Suchmaschinenoptimierung

Hadoop ist eine moderne Big Data Umgebung, die sich für zahlreiche Anwendungen eignet und modular ergänzt werden kann. Ob Data Mining, Information Retrieval, Business Intelligence oder Predictive Modelling – Hadoop kann insbesondere bei sehr großen Datenmengen zuverlässige Ergebnisse liefern und Rechenprozesse automatisieren. Ursprünglich wurde Hadoop als Suchmaschine konzipiert. Nutch war der Webcrawler und Hadoop wurde später als die Infrastruktur von Nutch mitsamt Index und Datenbanken in ein eigenes Projekt überführt, weil der weitreichende Nutzen des Frameworks im Laufe des Projekts den beteiligten Personen klar wurde.[4] Dazu gehören heutzutage auch die Webanalyse, das Cross-Selling in Onlineshops oder die Auslieferung von Werbeanzeigen aufgrund des Nutzerverhaltens in Affiliate-Netzwerken.

Durch die Eigenschaften von Hadoop macht es allerdings für kleine Projekte nur bedingt Sinn, das Framework zu nutzen. Hadoop ist durch die verteilten Rechnersysteme zwar flexibel, aber es sollte auch eine bestimmte Datenmenge vorhanden sein, damit sich der Entwicklungsaufwand nivelliert. Denn Hadoop ist eine Umgebung mit mehreren Bibliotheken, Programmen und Anwendungen – diese müssen auf die speziellen Anforderungen zugeschnitten werden.[5]

Einzelnachweise

  1. a Free Software Program, Finds Uses Beyond Search nytimes.com. Abgerufen am 27.04.2015
  2. YARN & Co. – Hadoop-Erweiterungen im Überblick bigdata-insider.de. Abgerufen am 27.04.2015
  3. Hadoop PoweredBy wiki.apache.org. Abgerufen am 27.04.2015
  4. Hadoop: What it is and why it matters sas.com. Abgerufen am 27.04.2015
  5. It's Complicated: Why The Hadoop Skills Gap Will Widen In 2015 forbes.com. Abgerufen am 27.04.2015

Weblinks