Große Datenmengen im Griff: Massiv Parallel Processing versus Hadoop

Mit Massiv Parallel Processing und dem Hadoop-Framework stehen zwei Ansätze bereit, die den Anforderungen von Big-Data-Anwendungen gewachsen sind. Beide unterscheiden sich in der Natur ihrer Hardware und Software, lassen sich aber zu leistungsfähigen hybriden Big-Data-Architekturen kombinieren.

In Pocket speichern vorlesen Druckansicht
Große Datenmengen im Griff: Massiv Parallel Processing versus Hadoop
Lesezeit: 11 Min.
Von
  • Diethelm Siebuhr
  • Martin Becker
Inhaltsverzeichnis

Die Datenmengen in Unternehmen nehmen mittlerweile unglaubliche Ausmaße an; sie liegen nicht selten im Petabyte-Bereich. Wesentliche Ursache dieser Datenflut ist die Digitalisierung aller kaufmännischen und technischen Prozesse, beispielsweise in Form von Sensordaten aus Industrieanlagen, Geo- und Telematikdaten von Fahrzeugen oder RFID-Daten aus der Logistikkette. Der fortschreitenden Vernetzung der Systeme im Internet der Dinge geschuldet, wird diese Entwicklung noch weiter voran getrieben. Hinzu kommen nutzergenerierte Daten auf Social-Media-Plattformen, Multimedia-Inhalte, Fotos oder HD-Videos.

Es ist eine Herausforderung für Unternehmen, diese strukturierten und unstrukturierten Daten aus heterogenen Quellen ihrer Relevanz entsprechend zu erfassen, auszuwerten und für Business-Entscheidungen bereitzustellen – am besten noch in Echtzeit. Die Daten aus Webshops, Fahrzeugen, Maschinen oder Smartphones geben dann Auskunft über Konsum, Verhalten und Vorlieben von Kunden, den Status von Maschinen, Orte und Bewegungen und viele andere Dinge. Verknüpft mit kontextbezogenen Informationen wie Kundenhistorie oder Wetter lassen sich daraus Prognosen erschließen.

Doch die gebräuchlichen Data-Warehouse-Systeme sind in die Jahre gekommen und mit Big-Data-Analysen schlichtweg überfordert. Hier helfen Massive Parallel Processing (MPP) und/oder das Framework Hadoop mit seinem umfassenden Ökosystem weiter. Beide Ansätze teilen komplexe und große Datenmengen in kleinere Einheiten auf und verarbeiten sie parallel auf mehreren verteilten Rechnerknoten. Allerdings unterscheiden sie sich in der Natur ihrer Hardware und Software.

MPP-Anwendungen sind nur als proprietäre Subsysteme mit eigener Hardware und Software verfügbar. Sie bestehen aus einer Vielzahl parallel arbeitender Serverknoten, die über leistungsfähige Switches miteinander verbunden sind. Jeder Node ist mit Prozessoren, Storage und I/O-Kanälen ausgestattet und bearbeitet mit diesen Ressourcen einen Teil der Gesamtdaten. In dieser so genannten Shared-Nothing-Architektur werden Anfragen mit speziellen Partitionierungsverfahren und Algorithmen an die einzelnen Knoten des Datenbank-Clusters verteilt. Jeder Knoten verarbeitet lokal in seinem Hauptspeicher seinen Datenanteil an der Abfrage; eine Art "Master-Knoten" fasst die einzelnen Ergebnisse am Ende zusammen. Die Daten sind allerdings zunächst vorzubereiten, da MPP-Systeme nicht mit unstrukturierten Daten arbeiten können.

MPP-Systeme zeichnen sich durch die hohe I/O-Leistung aus, mit der die einzelnen Knoten parallel auf die partitionierten Daten zugreifen. Damit können sie auch in kurzer Zeit sehr große Datenmengen verarbeiten. Zudem sind sie weitaus besser skalierbar als klassische Datenbanksysteme, da sich ihre Rechen- und Speicherkapazität durch das Hinzufügen neuer Knoten beziehungsweise Server einfach erweitern lässt. Weiterer Vorteil: Potenziell sind mit MPP-Datenbanken extrem große In-Memory-Speicher möglich, wenn man den gesamten verfügbaren Cluster-Storage nutzt.

MPP-Appliances sind proprietäre Systeme, da jeder Hersteller sein Angebot über Algorithmen und die technische Abstimmung der Komponenten für die speziellen Anforderungen seines Big-Data-Anwendungsfalls optimiert. Für die Nutzer spielt das aber keine Rolle, da MPP-Systeme nach außen über SQL kommunizieren und auch SQL-basierte Business-Intelligence-Tools unterstützen. Zudem entlasten sie den Datenbank-Administrator durch interne Verfahren, automatische Datenverteilung und optimiertes Workload-Management.

Da die Anzahl der CPU-Kerne je System von wenigen Hundert bis zu mehreren Tausend reicht, müssen Unternehmen viel Geld für eine MPP-Produkt in die Hand nehmen. Sie können hier durchaus mit mittleren sechsstelligen Beträgen rechnen. Beispiele auf dem Markt sind IBM Netezza, EMC Greenplum, HPE Vertica, Oracle Exadata, Microsoft Analytics Platform System, Teradata Aster Data nCluster oder auch SAP HANA.

Im Gegegensatz zu MPP folgt Hadoop einem offenen Konzept. Das Framework ist ein Projekt der Apache Software Foundation, basiert auf Java sowie den wesentlichen Kern-Komponenten Hadoop Distributed File System (HDFS), MapReduce und der Funktionsbibliothek Hadoop Common. Letztere enthält beispielsweise JAR-Dateien und -Skripte, Sourcecode oder Dokumentationen. Die Speicherschicht HDFS speichert Daten in Blöcken und verteilt sie redundant auf mehrere Rechnerknoten. Durch die parallele Verarbeitung eignet sich HDFS hervorragend für das schnelle Lesen großer Datenmengen.

Google hatte MapReduce entwickelt, um Websites zu indizieren. Das Framework besteht aus den beiden Funktionen Map und Reduce: Map verteilt Aufgaben an diverse Knoten im Cluster, Reduce sortiert die Aufgaben und fasst sie in einer gemeinsamen Ergebnisliste zusammen. MapReduce ist eine Programmierumgebung zur Parallelisierung von Abfragen, die neben HDFS auch andere Datei- und Datenbanksysteme unterstützt. Der Nachteil: Da MapReduce und HDFS Batch-orientiert arbeiten, eignen sie sich in ihrer Grundform nicht für Transaktionsverarbeitung oder Echtzeitanalysen. Im Gegensatz zu MPP unterstützt Hadoop zudem natives SQL nicht direkt. Daher ist unter Hadoop häufig größerer Programmieraufwand notwendig als bei MPP, um Anwendungen zu entwickeln und anzupassen.

Dafür aber läuft Hadoop wegen seiner offenen Hard- und Softwarearchitekturen auf einem Verbund von Standard-x86-Rechnern. Damit sind entsprechende Angebote deutlich günstiger als MPP-Systeme. Hadoop kommt zudem sowohl mit strukturierten als auch mit unstrukturierten Daten sehr gut zurecht.

Um diese Kernkomponenten von Hadoop herum hat sich mittlerweile ein umfangreiches Ökosystem an Anbietern, Tools und weiteren Modulen entwickelt, das die Schwächen etwa bei der Echtzeitanalyse oder die fehlende SQL-Unterstützung ausgleicht. Zu den wichtigsten Hadoop-Distributoren gehören Cloudera, Hortonworks, MapR, IBM, die EMC-Tochter Pivotal oder auch Cloud-Service-Anbieter wie Amazon und Microsoft. Alle Hadoop-Distributionen versuchen, mithilfe einheitlicher Admin-Komponenten das Datenmanagement in verteilten Umgebungen zu vereinfachen.

MPP und Hadoop unterscheiden sich also primär in der Natur ihrer Hardware und Software sowie im Preisniveau. Entsprechend richten sie sich auch an unterschiedliche Zielgruppen. Beide Ansätze können aber durchaus wirtschaftlich und technologisch koexistieren. Daher arbeiten Hersteller von Hadoop- und MPP-Lösungen mittlerweile verstärkt zusammen, um die Integration der beiden Welten zu ermöglichen. Beispiele sind etwa die Kooperation von SAP mit den Hadoop-Anbietern Cloudera, Hortonworks, HP und IBM oder die von Microsoft und Hortonworks beim Azure-Dienst HDInsight. Die EMC-Tochter Pivotal bietet sowohl Greenplum-MPP-Appliances als auch Hadoop-Frameworks an, um Kundenanforderungen mit Techniken aus beiden Welten zu bedienen.

Ein Kernthema bei der Verbindung der beiden Ansätze ist die Integration von SQL in Hadoop. Da Hadoop natives SQL nicht direkt unterstützt, müssen Anwender andere Integrationsansätze verfolgen, beispielsweise Apache Hive oder seine deutlich leistungsfähigeren Nachfolger Cloudera Impala, Pivotal HAWQ oder Apache Spark:

  • Hive: Einen ersten Ansatz, die Daten in einem Hadoop-Cluster mit SQL zu analysieren, bot Hive. Es verfügte nicht über den kompletten normierten SQL-Umfang, stellte also nur ein Subset der SQL-Funktionen zur Verfügung; die Abfragesprache wird daher auch als HiveQL (Hive Query Language) bezeichnet. Da HiveQL das Ausführen von Abfragen oder die Analyse der im HDFS gespeicherten Daten ermöglicht, stellt Hive eine Art Data-Warehouse-Komponente des Hadoop-Frameworks dar.
  • Spark: Eines der drängendsten Probleme von MapReduce, die hohe Latenz von Antworten im Batch-Modus, löst Spark, indem es ähnlich zu SQL auch bei Hadoop-Clustern Echtzeitabfragen ermöglicht. Dazu bietet Spark In-Memory-Techniken. Das heißt, es bearbeitet Abfragen und Daten direkt im schnellen Arbeitsspeicher der Rechnerknoten. Im Gegensatz dazu liest und schreibt MapReduce die Datensätze auf Festplatten. Da Spark Abfragen auch parallel auf mehrere Knoten verteilt, steigt die Leistung bei vergleichbaren Abfragen etwa um den Faktor 100. Das Framework muss nicht zwangsläufig auf der Hadoop-Speicherschicht HFDS aufsetzen, sondern arbeitet auch auf anderen Datenplattformen wie HBase, AWS S3 oder Apache Cassandra genauso effizient. Spark ist zudem in der Lage, komplexere Aufgaben zu bearbeiten als MapReduce, da es mit der Machine-Learning-Library-Bibliothek MLLib, einer Sammlung von Algorithmen, auch auf maschinelles Lernen setzt. Diese Funktion nutzt beispielsweise der Streaming-Dienst Spotify, um den Musikgeschmack seiner Nutzer vorherzusagen.
  • Cloudera Impala: Im Open-Source-Umfeld existiert mit Impala eine weitere MPP-Technik, die mit einer eigenen SQL-Abfrage-Engine aufwartet und den traditionellen Batch-Modus von Hadoop um Echtzeitverarbeitung erweitert. Sie verwendet eigene Query-Planner und lässt anders als etwa bei HadoopDB und Hadapt keine PostgreSQL-Instanzen auf den DataNodes laufen. Cloudera stellt etwa 50 Prozent der eigenen Entwicklung der Apache Software Foundation zur Verfügung und hat Impala vollständig in seine Hadoop-Distribution integriert. Impala nutzt den bereits von Hive eingeführten Metastore für die Schema-Verwaltung und die SQL-Variante HiveQL; es wird parallel zu Hive installiert und erlaubt es, SQL-Abfragen mit geringen Latenzzeiten auf in HDFS oder HBase vorhandenen Daten durchzuführen.
  • HAWQ (Hadoop with Query): Ähnlich wie Impala stellt HAWQ ein Framework als native SQL Engine auf Basis von Hadoop bereit. Es basiert auf der MPP-Datenbank Greenplum von EMC, verfügt unter anderen über intelligente Algorithmen aus der MADlib-Bibliothek für maschinelles Lernen, unterteilt aber auch komplexe Anfragen in kleine Aufgaben und verteilt sie an verschiedene Knoten zur Verarbeitung. HAWQ liest und schreibt Daten nativ auf HDFS und bietet einen so genannten Query Optimizer und Planner, der die Statistiken der Tabellen bei SQL-Anfragen auswertet. Für die Installation und das Management des Systems stehen die Administrations-Tools der Greenplum-Datenbank zur Verfügung. Über Java und Open Database Connectivity (JDBC, ODBC) lassen sich Business-Intelligence-Anwendungen mit HAWQ verbinden.

Hadoop ist inzwischen in zahlreichen Unternehmen Bestandteil der Big-Data-Architektur, auch wegen seiner hohen Flexibilität und der vielen Ergänzungen aus dem Ökosystem. Das Framework bietet ein offenes Konzept für die Verarbeitung und Analyse großer Datenmengen, das im Gegensatz zu MPP auf günstigerer Standard-Hardware aufsetzt. Da Hadoop im Grundsatz ein Batch-System darstellt und natives SQL nicht direkt unterstützt, ist es in seiner Urform weniger für Echtzeitverarbeitung und iterative Algorithmen geeignet. Daher müssen Anwender andere Integrationsansätze verfolgen wie Hive, Impala, HAWQ oder Spark.

MPP-Datenbanken sind als optimierte proprietäre Appliances teurer, aber auch effizienter und leistungsfähiger als Hadoop. Sie haben ihre Schwächen bei unstrukturierten oder variablen Daten, da sie diese im Vorfeld aufbereiten müssen. Hadoop wiederum kommt sowohl mit strukturierten als auch mit unstrukturierten Daten zurecht.

Derzeit ist ein Trend hin zu hybriden Big-Data-Architekturen zu erkennen, die den Vorteil der SQL-Nutzung in der MPP-Welt mit der Skalierbarkeit und Wirtschaftlichkeit von Hadoop kombinieren. MPP-Anbieter wie Pivotal nutzen zunehmend Ansätze aus Hadoop, während Hadoop-Platzhirsche wie MapR, Cloudera oder Hortonworks die Vorzüge von MPP in ihre Produkte integrieren.

Diethelm Siebuhr ist CEO und Martin Becker Senior Solutions Consultant der Nexinto Holding in Hamburg, einem Unternehmen, das für Kunden und interne Aufgaben Data Lakes, MPP- und Hadoop-Anwendungen nutzt. (ane)