Hadoop-Distributionen und -Grundlagen im Überblick

Hadoop mischt den Big-Data-Markt auf

14.11.2014
Von 
Thomas Drilling ist als freier IT-Journalist und IT-Consultant tätig. Seine Spezialgebiete sind Linux und Open-Source-Software.

Das Hadoop-Ökosystem

Das freie, bei der ASF gehostete Hadoop-Projekt umfasst nur die beiden Kernkomponenten MapReduce und HDFS und wird auch als Hadoop Core bezeichnet. Es dürfte allerdings nur den wenigsten Fachleuten gelingen, allein auf Basis von Hadoop Core ein eigenes Big-Data-Projekt aufzusetzen. Über Jahre ist um Hadoop Core herum, beziehungsweise ergänzend zu Hadoop ein ganzes Ökosystem zusätzlicher Projekte entstanden, die Hadoop zum Beispiel besser nutzbar, sicherer und flexibler machen sowie die Zusammenarbeit mit SQL ermöglichen. Die einzelnen Hadoop-Distributionen bündeln einige dieser Projekte mit Hadoop Core und eigenen Entwicklungen zu einem einfach einsetzbaren Gesamtsystem. Hortonworks, die treibende Kraft hinter Hadoop, bezeichnet dieses Ökosystem auch als Projektnetzwerk. Dabei widmet sich jedes einzelne Projekt einer einzigen Hauptfunktion, hat jeweils eine eigene Community von Entwicklern und eigene, individuelle Release-Zyklen.

Seit der Veröffentlichung von Hadoop2/YARN versteht sich das System allerdings nicht mehr als reine MapReduce-Ablaufumgebung. YARN fasst vielmehr unter der Bezeichnung "Datenbetriebssystem" eine Reihe von Einzelprojekten für den Datenzugriff zusammen, darunter die Skripting Engine Pig. Ferner ist mit Hilfe der Projekte Hive, Tez und HCatalog ein Zugriff auf SQL-Datenbanken sowie mit HBase und Accumulo auf NoSQL-Datenbanken möglich. Als Suchmaschine ist Solr Teil des YARN-Frameworks, Storm ermöglicht die Echtzeitverarbeitung von Streaming-Daten, und Spark integriert eine leistungsfähige In-Memory-Datenbank.

Apache Hive erweitert das MapReduce-Framework um eine Abstraktionsebene mit der SQL-ähnlichen Abfragesprache HiveQL. HiveQL ermöglicht das Absetzen klassischer Abfragen und damit das Analysieren der im HDFS abgelegten Daten. Man kann sich Hive auch als Data-Warehouse-Komponente des Hadoop-Frameworks vorstellen. Von großer Bedeutung für Hadoop sind auch HCatalog für das Meta-Daten-Management oder die NoSQL-Datenbank HBase. HBase kommt zum Einsatz, wenn die im Kern stapelorientierte Arbeitsweise von Hadoop mit ihrer Optimierung für das einmalige Speichern und mehrmalige Lesen der Daten das Problem nicht abbilden kann oder wenn ein Manipulieren der Daten erforderlich ist.

Apache Spark

Ein weiteres populäres Framework für die Echtzeitdatenanalyse ist Apache Spark. Spark stellt APIs für Java, Scala und Python zur Verfügung und kann Daten nativ aus dem HDFS (Hadoop File System), der Hadoop-HBase-Datenbank sowie dem Datenspeicher Cassandra lesen. Mit Spark gelingt das Abfragen und Analysieren von Daten dank der verwendeten In-Memory-Technik deutlich schneller, als es die MapReduce-Implementierung vom YARN (Yet Another Resource Negotiator) vermag. Funktionierte die Echtzeitanalyse mit Hadoop 1.x nur mit Zusatzprodukten, ist YARN in dieser Hinsicht flexibler. Bei YARN ist MapReduce nur noch eine Möglichkeit zum Aufbau eines Hadoop-Clusters. Apache Spark ist im Rahmen von Hortonworks YARN Ready Program für Hortonworks Data Platform zertifiziert und fügt sich somit nahtlos in die YARN-Architektur ein.

Ergänzend zu Spark können Hadoop-Anwender die Echtzeitanalyse mit dem auf Apache Lucene basierenden Projekt Elasticsearch realisieren, gewissermaßen dem Schweizer Taschenmesser für Hadoop-Anwendungen. Elasticsearch kann Daten aus CRM- und ERP-Systemen auswerten sowie Click-Streams und Log-Informationen verarbeiten. Darüber hinaus gibt es im Hadoop-Framework Projekte aus den Bereichen Sicherheit, Unternehmens-Workflow und Governance-Integration, die Hadoop bei Bedarf unm zusätzliche Funktionen erweitern und bei den Hadoop-Distributionen zum Einsatz kommen. So ermöglicht beispielsweise Apache ZooKeeper ein Koordinieren der zahlreichen verteilten Prozesse.

Einer der Hauptgründe für den Einsatz einer Hadoop-Distribution ist die sonst normalerweise recht aufwendige Installation und Administration. Hier verspricht das Projekt Apache Ambari Abhilfe und erlaubt das Installieren, Administrieren und Überwachen eines Hadoop-Clusters via Web-Interface. Bei der Planung eines Hadoop-Clusters hilft zum Beispiel Apache Oozie, das ein Erzeugen und Automatisieren von Prozessketten ermöglicht. Darüber hinaus erlaubt Apache Scoop das Im- und Exportieren großer Datenmengen aus relationalen Datenbanken. Hadoop ist heute nicht nur in der Lage, auch auf relationale Datenbanken zuzugreifen, sondern auch auf eine ganze Reihe spezieller Artikel von Daten. Apache Flume beispielsweise ermöglicht ein Einsammeln und Aggregieren von Log-Daten.