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.
- Apache YARN - Hadoop-Architektur
Seit der Version 2.0 des MapReduce-Algorithmus (MRv2), eingeführt mit der Hadoop-Version 2.3, hört das Framework auf den Namen NextGen MapReduce (YARN). YARN egalisiert eine Reihe von Defiziten der Vorgängerversion in den Bereichen Echtzeitfähigkeit und Sicherheit. Die fundamentale Neuerung in der YARN-Architektur besteht darin, die zwei Hauptfunktionen Ressourcen-Management und Job-Scheduling/Monitoring in zwei separate Daemons aufzuteilen. - Apache Hive - Abfrage
Die Grafik zeigt den Query-Editor in Apache Hive. 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. Der Query-Editor in Apache Hive. - Apache HCatalog - Management
HCatalog ist für das Management von Metadaten in Hadoop von großer Bedeutung. Die Grfik zeigt eine Table-List in Hcatalog. - Apache Pig - Scripting Engine
Die Scripting-Engine Apache Pig. - Apache Knox - Sicherheit
Apache Knox kümmert sich primär um die Cluster-Ebene und erweitert das Hadoop-Security-Modell für alle Nutzer, die auf die Cluster-Daten zugreifen, mit Hilfe von Authentifizierungsrollen. - Hortonworks und Hadoop
So stellt sich Hortonworks eine moderne Data-Architektur vor. Auf Basis der Data-Systeme operieren Big-Data-Lösungen wie Hadoop gleichberechtigt neben SQL-Datenbanken wie SQL-Server, Oracle oder SAP Hana und können bei Bedarf Daten miteinander austauschen. Applikationen wie SAP greifen nach Belieben auf die verfügbaren Daten zu. - Cloudera und Hadoop
Die Hadoop-Distribution "CDH" von Cloudera ist vom Anbieter mit dem Prädikat „enterprise ready“ versehen und beinhaltet eine Reihe eigener Entwicklungen. Im Kern verwendet allerdings auch CDH YARN für das Workload-Management und setzt wahlweise auf HDFS oder Hbase als Storage-Engine. - Amazon EMR und Hadoop
Amazon Elastic Map Reduce unterstützt inzwischen alle Hadoop-Versionen von 0.20 über 1.0.3 bis zu den aktuellen Versionen 2.2 und 2.4. Darüber hinaus arbeitet EMR auch mit den Cluster-Typen Hive, Custom JAR, Pig, Hbase und Streaming.
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.