Big Data für den Mittelstand

Roman Gorielov, 123RF

Rechenkünstler

,
Big Data ist in aller Munde und Hadoop gewinnt an Boden, wenn auch bisher vorwiegend als ein verteiltes Dateisystem. MapReduce, die Datenverarbeitungs-Engine in Hadoop 1, erscheint vielen noch als zu kompliziert und zu unflexibel. Hadoop 2.x verspricht, Abhilfe zu schaffen.
Drahtlose Netzwerke sind überall: Zu Hause, im Café und in der Firma. Im Gegensatz zu Kabelnetzen verliert der Admin bei WLANs allerdings schnell die ... (mehr)

Alle Unternehmen, von kleinen Webshops bis hin zu multinationalen Großkonzernen, sammeln detaillierte Daten über das Tagesgeschehen, wenn auch zum Teil ungewollt. Das reicht von Kaufvorgängen über die Wirkung von Marketing-Initiativen bis hin zu den Social-Media-Aktivitäten des Unternehmens. Diese riesige Menge unstrukturierter Daten – Big Data – verspricht wertvolle Einblicke und reichlich Material für die Entscheidungsfindung zu liefern. Wer davon profitieren möchte, muss sich der Herausforderung Big Data stellen.

SQL, NoSQL, Hadoop

Konventionelle Big-Data-Lösungen schleppen mit sich die Altlasten eines Ökosystems herum, das rund um eine Datenbank – sei es SQL oder NoSQL – aufgebaut ist. Astronomische Lizenzkosten positionieren sie praktisch außerhalb der Reichweite mittlerer Unternehmen, und das erst recht, wenn Hochverfügbarkeitsfeatures erwünscht sind. Den größten Flaschenhals stellt bei diesen Lösungen oft die Datenbank dar, denn sie lässt sich meist nur mit erheblichem administrativen Aufwand über die Grenzen einzelner Server hinaus skalieren. Herkömmliche Datenanalyse-Verfahren und relationale Datenbanken können hier an Grenzen stoßen. Sogar manche Cloud-Lösungen skalieren nicht ohne obligatorische Downtime. Ein möglicher Ausweg heißt Hadoop.

Apache Hadoop ist ein Framework für die verteilte Verarbeitung vor allem unstrukturierter Daten auf Computer-Clustern. Hadoop macht es möglich, Rechenprozesse kostengünstig ablaufen zu lassen, und zwar sowohl on-premise auf Commodity-Hardware, in einem Rechenzentrum oder aber in der virtualisierten Umgebung eines Cloud-Dienstleisters.

Besonderheiten von Hadoop

Die Zugriffe auf eine gewöhnliche relationale Datenbank nutzen Abfragen in einem der vielen Dialekte der Standardsprache SQL (Structured Query Language). Beim Zugriff auf nicht-relationale Datenbanken sind neben SQL andere Abfragesprachen möglich (daher kommt der Begriff NoSQL). Hadoop fällt in keine dieser beiden Kategorien, denn es nutzt einfach gar keine Datenbank. Genau diesem Ansatz verdankt Hadoop seine Flexibilität und seine Robustheit.

Hadoop besteht aus zwei Grundkomponenten: Zum einem dem verteilten Dateisystem Hadoop Distributed File System (HDFS), zum anderen einem verteilten, modularisierten Datenverarbeitungs-Framework. Dafür nutzt Hadoop 1.x MapReduce. Hadoop 2.x setzt an dieser Stelle entweder MapReduce oder auch dessen Nachfolger YARN ein (siehe unten).

Die Aufgabe von HDFS besteht darin, die Daten möglichst effizient und ausfallsicher aufzubewahren und möglichst flott bereitzustellen.

Bei HDFS handelt es sich nicht um ein "clusterisiertes", sondern um ein verteiltes Dateisystem: Es läuft auf mehreren Knoten in einem Netzwerk – aber ohne (teure) SAN-Lösung. HDFS ist dadurch sehr kosteneffizient.

Das Datenverarbeitungs-Framework spricht mit dem Dateisystem, verwaltet Ressourcen und überwacht die Ausführung der Befehle, die eine Hadoop-kompatible Applikation an das Framework sendet. Diese Befehle bilden sogenannte Jobs. Die Jobs sind als einzelne winzige Java-Applikationen implementiert.

Dank dieser Architektur lassen sich Workloads nicht nur über mehrere Knoten eines Computer-Clusters verteilen, sondern der Cluster selbst lässt sich umkonfigurieren, noch während er laufende Jobs ausführt. Daraus resultieren mehrere wichtige Vorteile. Erstens trumpft Hadoop mit der Fähigkeit auf, bedarfsgerecht und ohne Downtime zu skalieren. Diese Elastizität ist nicht nur dann von Nutzen, wenn die Datenmenge extrem zu- oder abnimmt, sondern auch dann, wenn der Termindruck die temporäre Bereitstellung zusätzlicher Rechenkapazitäten sinnvoll erscheinen lässt.

Bei steigender Belastung aktiver Nodes können zusätzliche Nodes automatisch gestartet werden, zum Beispiel mit dem Amazon Autoscaling API in AWS. In diesem Fall überwacht die Wolke die Belastung der einzelnen Instanzen mithilfe von CloudWatch. Sobald die Bedingungen, die der Administrator vorgegeben hat, zutreffen, startet AWS automatisch neue Server-Instanzen, die sich in den Hadoop-Cluster integrieren, bei dem Ressourcen-Verwalter registrieren und schließlich Jobs zugeteilt bekommen.

Darüber hinaus arbeitet Hadoop sehr Ressourcen-schonend, denn anstatt riesige Datenmengen kreuz und quer durch das Netz zwischen verschiedenen Nodes hin und her zu kopieren, wie es bei vielen RDBMS der Fall ist, sendet es vergleichsweise winzige Anweisungen genau dorthin, wo sich die betreffenden Daten bereits befinden. In einer Datenbank, die auf mehreren Servern läuft, werden die Daten in der Regel separat von der Software-Logik aufbewahrt, typischerweise auf verschiedenen Instanzen. Im Gegensatz dazu liegen in einem Hadoop-Cluster sowohl Daten als auch die Datenverarbeitungslogik auf jeder Maschine. Dadurch kann das Framework einzelne Jobs besonders effizient ausführen: jeweils auf der Instanz, auf der die betreffenden Daten lokal vorliegen. Die resultierende Redundanz verteilter Datenverarbeitung verbessert zudem die Robustheit des Clusters.

Mit einer Vielzahl von kostenlosen wie auch kommerziellen Tools lässt sich Hadoop um zusätzliche Fähigkeiten erweitern. Mit der quelloffenen Applikation Apache Hive können Sie zum Beispiel SQL-Abfragen in MapReduce-Jobs übersetzen und Hadoop wie eine (verteilte!) SQL-Datenbank ansprechen.

Ähnliche Artikel

comments powered by Disqus
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2023