Einführung in Hadoop – Welches Hadoop hätten’s denn gern? (Teil 2 von 3)

Keine Kommentare

So lässt sich die Fragestellung dieses zweiten Teils gut zusammenfassen und wird noch ergänzt durch die Frage „Und wie viel davon?“. Tatsächlich gibt es so etwas wie ein allgemein anerkanntes „Standard“-Hadoop nicht und am nächsten dran sind hier noch die Open Source Projekte der Apache Foundation. Aber zu Apache Hadoop gehören eine Vielzahl von Projekten und welche sind nun sinnvoll und welche braucht man? Weiterhin gibt es darauf aufbauend die Hadoop-Distributionen, die einen Teil dieser Open Source Projekte bündeln und teilweise noch um eigene Komponenten erweitern. Aber natürlich unterscheiden sich die Distributionen in Umfang, Unterstützung des Betriebs und Services für den Geschäftseinsatz – und natürlich auch im Preis. Letztendlich gibt es auch noch den Bereich der Big Data Suiten, die nochmal weitere Funktionalität wie etwa die Visualisierung der Daten und erweiterte Möglichkeiten für den Import & Export der Daten hinzufügen.

Die folgende Grafik stellt dieses Spektrum dar und im Folgenden wollen wir uns diesen drei Kategorien widmen und sie näher darstellen.

übersicht_hadoop_pakete

 

Apache Hadoop

Die Komponenten von Hadoop sind bei der Apache Foundation angesiedelt und stehen unter der Apache License 2.0. Bei Hadoop handelt es sich nicht nur um ein einzelnes Projekt, sondern um eine Vielzahl von zusammenhängenden und aufeinander aufbauenden Projekten. In diesem Zusammenhang spricht man gerne von den Kernkomponenten von Hadoop, welche die Grundlage für Hadoop und alle anderen Projekte bilden, die man als das Hadoop Ökosystem bezeichnet. Die Kernprojekte sind die folgenden:

  • Hadoop Distributed File System (HDFS): Ein verteiltes Dateisystem für die Speicherung und Verwaltung großer Datenmengen
  • Hadoop MapReduce: Ein Framework zur verteilten und parallelen Verarbeitung von in HDFS gespeicherten Datenmengen

Während sich Apache Hadoop recht einfach auch in einem lokalen Modus auf einem einzelnen Rechner für die Entwicklung installieren lässt, ist die Installation und der Betrieb in Clustern deutlich komplexer. Zum einen gibt es keine eingebaute Unterstützung bei der Installation von Hadoop in einem Cluster und ebenso gibt es auch keine Unterstützung zur Überwachung des Clusters im laufenden Betrieb. Zum zweiten beschränkt sich Apache Hadoop tatsächlich auf den Kern dessen, was Hadoop ausmacht. Das gesamte darum entstandene Ökosystem ist nicht enthalten und möchte man weiteren Komponenten nutzen, so müssen diese alle von Hand installiert werden. Und hier steht man schon vor dem ersten Problem, dass man sich die jeweils miteinander kompatiblen Versionen selbst aussuchen muss. Schließlich gibt es keinerlei kommerziellen Support und Firmen müssen alle ihre Hadoop-Probleme selbst lösen, wozu vor allem der meist langwierige Aufbau von entsprechendem Know-how gehört.

Daraus ist ersichtlich, dass sich Apache Hadoop insbesondere für Experimente oder für interessierte Entwickler eignet. Während ein Einsatz im Clusterbetrieb für mittelgroße Firmen durchaus möglich ist, empfiehlt es sich je nach Geschäftsmodell aber durchaus zumindest auf eine Hadoop-Distribution zu setzen – und sei es alleine schon wegen der kürzeren Einarbeitung und dem professionellen Support.

 

Hadoop Distributionen

Hadoop-Distributionen sind ganz klar auf den Einsatz im Enterprise-Umfeld ausgelegt. Der Markt ist zwischen einer Handvoll etablierter Anbieter aufgeteilt, wobei natürlich immer wieder neue Anbieter versuchen diese Phalanx zu durchstoßen. Der Umfang der Distribution unterscheidet sich natürlich von Anbieter zu Anbieter leicht, aber die wichtigsten Komponenten aus dem Hadoop-Ökosystem wie Pig, Hive und HBase sind bei allen dabei und werden teilweise noch um spezifische Entwicklungen der Anbieter ergänzt. Die Releasezyklen zwischen verschiedenen Versionen der Distributionen liegen typischerweise bei 3 bis 6 Monate und die Distributionen enthalten nicht immer die aktuellsten Versionen aller Komponenten. Dafür wird aber Sorge dafür getragen, dass auch alle Komponenten und Systeme miteinander kompatibel sind und entsprechend wird viel Wert auf den Test und die Sicherstellung des Zusammenspiels gelegt. Alle etablierten Distributionen bieten zudem Werkzeuge zur Clusterinstallation und -administration und zudem bieten die Anbieter optionalen kommerziellen Support an.

Die wichtigsten Anbieter von Hadoop-Distributionen sind die folgenden:

Cloudera
Die am weitesten verbreitete Distribution mit den meisten Referenzinstallationen. Es gibt leistungsfähige, aber proprietäre Werkzeuge zur Clusteradministration. Mit Impala treibt Cloudera zudem ein quelloffenes Projekt zur Echtzeitabfrage von großen Datenmengen voran. Es gibt zwar eine kostenfreie Version der Distribution, für den kommerziellen Einsatz fallen allerdings Lizenzgebühren in Abhängigkeit der Größe des Clusters an, die dann aber auch professionellen Support beinhalten.

 

Hadoop Distribution Hortonworks

Hortonworks
Die einzige Distribution am Markt, die 100% quelloffen ist und keine Lizenzgebühren verlangt. Alle Weiterentwicklungen, die Hortonworks vornimmt, fließen direkt in die Open Source Projekte von Apache Hadoop ein und Hortonworks ist eine treibende Kraft hinter der Entwicklung von Hadoop 2.0. Zudem bietet Hortonworks in Kooperation mit Microsoft als einziger Anbieter Hadoop für Windows und Azure an. Während für die Distribution selbst keine Lizenzgebühren anfallen, bietet Hortonworks aber auch Business-Support an und die Höhe der Supportgebühren richtet sich auch hier nach der Clustergröße.

 

Hadoop Distribution MapRMapR
Die Besonderheit dieser Distribution besteht darin, dass MapR direkt auf das Unix-Dateisystem aufsetzt und damit proprietär eine Alternative zu HDFS anbietet. Auch hier gibt es eine kostenfreie Version der Distribution, für den kommerziellen Einsatz fallen allerdings Lizenzgebühren in Abhängigkeit der Größe des Clusters an, die dann aber auch professionellen Support beinhalten.

 

Hadoop Distribution Amazon Amazon Elastic Map Reduce
Amazon bietet seine eigene Hadoop-Distribution auf der Basis der Cloudlösungen EC2 und S3 an, wobei die Distribution speziell darauf ausgerichtet ist, S3 anstelle von HDFS als Speicher zu verwenden. Kunden haben den Vorteil, dass Amazon das komplette Clustermanagement übernimmt, bezahlen dies aber auch mit dem Nachteil, dass S3 als Speicher nur bedingt geeignet und daher wesentlich langsamer als HDFS ist. Die Bezahlung richtet sich wie bei Amazon üblich nach den tatsächlich genutzten Ressourcen wie CPU und Speicherplatz.

 

Es gibt noch weitere Distributionen, z.B. von Pivotal oder Intel, die aber jeweils relativ speziell sind und bisher noch eine geringe Verbreitung haben. Die Auswahl der Distribution hängt nur zum Teil davon ab, welche Features man benötigt, denn in dieser Hinsicht ähneln sich die Distributionen doch sehr. Die wichtigsten Fragen, die man sich während der Evaluierung der Hadoop-Distributionen stellen sollte, sind die folgenden:

  • Möchte man sich an einen Anbieter binden (Vendor-Lock-In)?
  • Wie hoch sind die Lizenzgebühren für den eigenen Anwendungsfall?
  • Möchte bzw. kann man den Hadoop-Cluster selbst betreiben?
  • Welcher Grad an professionellem Support wird benötigt?

 

Big Data Suiten

Die Verwendung einer Big Data Suite zielt darauf ab, den Analysten und Endanwendern im Unternehmen die Arbeit mit Hadoop wesentlich zu erleichtern und ihnen zu erlauben, Werkzeuge zu verwenden, die sie gewohnt sind. Folgende zusätzliche Leistungen bieten Big Data Suiten:

Integrierte Umgebung

Es gibt eine integrierte grafische Benutzerumgebung, meist basierend auf dem bekannten Eclipse mit eigenentwickelten Plugins, aus der heraus viele Funktionen aufgerufen werden können und welche somit die Entwicklung vereinfacht.

Visualisierung

Mit den Bordmitteln von Apache Hadoop ist man bei der Anzeige der Daten meist auf Kommandozeilentools beschränkt. An dieser Stelle erweitern Big Data Suiten den Funktionsumfang und bringen eigene Tools zur Visualisierung und Aufbereitung der in HDFS gespeicherten Daten mit.

Echtzeitanalyse

Gerade zur Exploration von Daten wollen Analysten Antworten auf Anfragen idealerweise in Echtzeit bekommen und nicht erst immer auf langlaufenden MapReduce-Jobs warten, nur um dann festzustellen, dass irgendwo noch ein kleiner Fehler war. Daher benutzen Big Data Suiten verschiedene Techniken wie Vorkompilation und Datenauszüge, um erst mal ein Rapid Prototyping auf einer kleinen, möglichst repräsentativen Datenmenge zu ermöglichen, bevor die MapReduce-Jobs auf der gesamten Datenmenge ausgeführt werden.

Modellierung & Codegenerierung

Analysten wollen (und können meist) keine MapReduce-Anwendungen schreiben, welche aber die Basis jeglicher Datenverarbeitung in der aktuellen Version von Hadoop sind. Und auch wenn Apache Hadoop und die Hadoop Distributionen mit dem skriptähnlichen Pig und dem SQL-ähnlichen Hive bereits abstrakte Abfragesprachen bieten, gehen viele Big Data Suiten noch einen Schritt weiter und bieten graphische Oberflächen zum Erstellen von MapReduce-Anwendungen, welche den zugehörigen Code dann automatisch generieren.

Scheduling

Auf großen Clustern spielt die Verwaltung von MapReduce- Jobs und die Modellierung ihrer Abhängigkeiten eine große Rolle. Zwar gibt es in Apache Hadoop mit dem Fair und Capacity Scheduler bereits zwei unterschiedliche Strategien mit rudimentären Weboberflächen und auch das Hadoop Ökosystem hält mit Apache Oozie eine Workflow-Lösung parat, allerdings erweitern die Big Data Suiten auch diese Funktionalitäten teilweise um komfortablere Werkzeuge.

ETL & Konnektoren

Daten stammen aus verschiedensten Quellen, aus SQL- und NoSQL-Datenbanken, aus Logdateien, aus B2B-Systemen wie Salesforce und SAP oder von sozialen Medien wie Facebook und Twitter. Big Data Suiten bieten dazu Konnektoren an, damit Datenquellen einfach an Hadoop angeschlossen und Daten ausgetauscht werden können. Das Schreiben von Schnittstellencode wird so vermieden.

Angeboten werden Big Data Suiten einerseits von spezialisierten Anbietern wie etwa Talend, Teradata, Pentaho, Datameer, etc. und auf der anderen Seite erweitern mittlerweile auch Softwareanbietern wie Microsoft, IBM, Oracle ihre Produktpalette um entsprechende Angebote.

Und so breit wie hier das Angebot an Lösungen ist, so unterschiedlich sind auch viele dieser Big Data Suiten und reichen von spezialisierten Produkten bis hin zu viele Bereiche abdeckende Produkten. Die Entscheidung für eine Suite hängt daher von einer Reihe von Faktoren ab und man sollte sich zuerst diese grundlegenden Fragen stellen:

  • Erfüllt die Big Data Suite die jeweiligen Anforderungen?
  • Ist sie für technisch nicht so versierte Endbenutzer intuitiv benutzbar?
  • Welche Softwareanbieter sind im Unternehmen schon vorhanden?
  • Wie integriert sich die Big Data Suite mit der bestehenden Unternehmenssoftware?
  • Wie steht man zum Open-Source-Ansatz?
  • Welche Lizenzkosten sind zu erwarten?

Diese Übersicht über das Universum an Hadoop-Plattformen zeigt, wie groß die Auswahl ist. Dadurch wird aber auch deutlich, dass man seine jeweiligen Anforderungen möglichst genau kennen sollte, um dann zu entscheiden, ob Apache Hadoop, eine Hadoop-Distribution oder eine Big Data Suite am besten passt. Die Auswahl des passenden Anbieters folgt erst danach. Dabei werden neben der Eignung für das jeweilige Projekt sicherlich auch weitere individuelle, unternehmensübergreifende Kriterien eine Rolle spielen.

Weiter geht es in Teil 3 mit den wichtigsten Komponenten von Hadoop, hier lang…

Uwe Printz

Uwe Printz ist Data Architect und Trainer. Seit dem ersten Kontakt mit verteilten Systemen lässt seine Begeisterung dafür nicht nach und zurzeit hält er sich bevorzugt im Hadoop-Zoo auf.

Share on FacebookGoogle+Share on LinkedInTweet about this on TwitterShare on RedditDigg thisShare on StumbleUpon

Kommentieren

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.