Apache: Die Apache Software Foundation (ASF) ist eine Non-Profit-Organisation, die 1999 aus der US-amerikanischen Apache Group ausgegründet wurde. Das Ziel der ASF ist die Förderung, Weiterentwicklung und Standardisierung von Software-Projekten. In diesem Sinne hat sie es sich auch zum Ziel gesetzt, die Hadoop-Plattform und deren Software-Bibliotheken weiter auszubauen.

Avro: Avro ist ebenfalls ein Apache-Projekt, das als Teil von Hadoop entwickelt wurde. Das Framework dient der Serialisierung von Daten und unterstützt Remote Procedure Calls, also den Aufruf von Funktionen zwischen unterschiedlichen Systemen. Avro ist ein wichtiger Hadoop-Bestandteil, der für ein schnelles Processing zwischen verteilten Systemen essentiell ist.

Big Data: Der Begriff Big Data beschreibt in erster Linie ein Phänomen: den exponentiellen Anstieg des global existierenden Datenvolumens. Dabei spielt es keine Rolle, aus welchen Quellen diese Daten stammen – wichtig ist lediglich, dass sich die verfügbaren Informationen rasend vermehren und ihr Potenzial mit klassischen Lösungen kaum ausgeschöpft werden kann. Gängige Datenbank-, Datawarehousing- und Analysesysteme stoßen aufgrund der reinen Masse, aber auch aufgrund der Beschaffenheit der Daten an ihre Grenzen. Leistungsstarke Technologien zur Verarbeitung von Big Data werden deshalb unter anderem dazu in der Lage sein müssen, auch unstrukturierte Daten zu erfassen. Frameworks wie Hadoop basieren auf dem Prinzip verteilter Rechenoperationen und machen damit große Datenmengen handhabbar und produktiv nutzbar. Der Computerworld-Journalist Jaikumar Vijayan weist in seinem Artikel „Moving beyond Hadoop for big data needs“ jedoch darauf hin, dass bei allem Potenzial von Hadoop schon heute nicht nur die reine Fähigkeit, große Datensätze zu verarbeiten, sondern zudem die Geschwindigkeit, mit der dieses geschieht, von Bedeutung ist.

Cascading: Cascading ist ein Java-basiertes Anwendungs-Framework zur Entwicklung von Data Analytics- und Data Management-Anwendungen auf Basis von Hadoop. Der Tech-Blogger Don Burnett hat eine Präsentation zum Thema „Hadoop and the Cascading Toolkit“ auf Youtube veröffenlicht – eine nette Zusammenfassung für alle, die sich schnell einen Überblick verschaffen wollen.

Cassandra: Apache Cassandra ist ein einfaches, verteiltes, NoSQL-Datenbankverwaltungssystem für sehr große strukturierte Datenbanken. Es ist offen dokumentiert und als freie Software ebenfalls unter Apache-Lizenz erhältlich. Besondere Merkmale: Hohe Skalierbarkeit und Ausfallsicherheit.

CDH/CDH4: CDH steht für „Cloudera’s Distribution Including Apache Hadoop“ und ist nach Angaben von Cloudera die meist genutzte Hadoop-Lösung weltweit. Sie dient zur Bereitstellung großer Datenmengen und nutzt dabei sowohl die zentralen Elemente von Hadoop – also skalierbaren Speicher und eine verteilte Computing-Umgebung – als auch geschäftskritische Leistungsmerkmale wie Sicherheit, hohe Verfügbarkeit und die Integration mit bestehenden Hard- und Softwareumgebungen. CDH ist derzeit in Version 4 verfügbar.

Chukwa: Apache Chukwa ist ein Hadoop-Unterprojekt, das als Analysis- und Monitoring-System die Echtzeitüberwachung sehr großer, verteilter Systeme erlaubt. Eine sehr anschauliche Erklärung für alle, die mehr wissen möchten, gibt es hier.

Distributed Computing: Der vermutlich bekannteste Vorreiter für verteilte Rechenprozesse ist SETI@home – mehr als 2,3 Millionen Computernutzer haben sich zum leistungsstärksten virtuellen Großrechner der Welt zusammengeschlossen. Und damit ist das Prinzip Distributed Computing letztlich auch erklärt: Verteiltes Rechnen oder auch Dezentralisiertes Rechnen ist eine Technik der Anwendungsprogrammierung, bei der die einzelnen Prozesse einer verteilten Anwendung ein gemeinsames Ergebnis berechnen – zum Beispiel zur Suche nach außerirdischer Intelligenz. Dan Garcia von der University of California erklärt in einem Vorlesungsmitschnitt (Video) das Prinzip „Distributed Computing“ – interessant wird es ab Minute 13.

Doug Cutting: Schöpfer und Namensgeber von Hadoop, der das System nach dem Kuschelelefanten seiner Tochter benannte. Doug Cutting ist außerdem Chairman der Apache Software Foundation und der Chefentwickler von Cloudera.

Cloudera: Cloudera ist die wohl renommierteste Software-Schmiede für Apache Hadoop-basierte Lösungen und Dienstleistungen. Inhaber ist der Hadoop-Schöpfer und ASF-Vorsitzende Doug Cutting. Cloudera unterstützt die Apache Software Foundation sowohl mit finanziellen Mitteln als auch mit Manpower: Nach eigenen Angaben kommen über 50 Prozent der eigenen Entwicklungsleistungen der ASF zugute. In einem Interview mit Scott Swigart von der Open Source-Community PORT25 bezieht Amr Awadallah, CTO bei Cloudera, ausführlich Stellung zu allen relevanten Hadoop-Themen.

Eclipse: Eclipse ist eine beliebte Open Source-Entwicklungsplattform, die gerade in Hadoop-Umgebungen gerne von Entwicklern genutzt wird. Ein Beispiel für das Eclipse-Ecosystem ist BIRT, eine offene Business Intelligence- und Reporting-Lösung, über die sich auch Big Data visualisieren lässt.

Hadoop: Apache Hadoop ist ein freies, Java-basiertes Programmier-Framework, das die Verarbeitung sehr großer Datensätze in verteilten Rechenumgebungen unterstützt. Finanziert und verwaltet wird das Projekt von der gemeinnützig tätigen Apache Software Foundation (ASF). Die Erfassung und Nutzung von Big Data könnte aufgrund des immensen, polystrukturierten Datenvolumens ohne Processing-Technologien wie Hadoop gar nicht verarbeitet werden – nur über verteilte Systeme, die Tausende von Verbindungspunkten (Hardware-Nodes) und Abertausende von Bytes vereint, werden ein rapider Datenverkehr und ein effektives Data Processing vermutlich überhaupt erst möglich sein. Einen guten Überblick über die Möglichkeiten von Hadoop liefert dieser Beitrag von BARC-Analyst Dr. Carsten Bange und Martin Lange, Global Leader Open Source Integration bei Talend.

Hama: Apache Hama ist ein reines BSP (Bulk Synchronous Parallel)-Framework, das auf HDFS aufsetzt und für massive, wissenschaftliche Rechenprozesse wie beispielsweise Matrix-, Graph- oder Netzwerk-Algorithmen gedacht ist.

HBase: Apache HBase ist eine skalierbare, spaltenorientierte Datenbank (ein so genannter Key Value Store), über die sich sehr große Datenmengen innerhalb eines Hadoop-Clusters verwalten lassen. Im Gegensatz zu Hive beispielsweise besteht mit HBase die Möglichkeit, Daten zu manipulieren. Deshalb ist das System besonders für volatile (also flüchtige) Daten geeignet, die in kurzen Abständen aufgefrischt oder verändert werden. Auch Realtime-Abfragen mit minimalen Latenzzeiten können mit HBase gut umgesetzt werden. Eine grundlegende Einführung in das Thema HBase gibt es in diesem Video.

Hadoop Distributed File Systems (HDFS): Das verteilte Dateisystem HDFS ist eine der Kernkomponenten von Hadoop. HDFS zeichnet sich durch seine hohe Ausfallsicherheit aus und wurde für den Betrieb auf kostengünstiger Hardware entwickelt. Die zentralen Ziele von HDFS: eine schnelle Fehlererkennung, eine schnelle Wiederherstellung von Daten sowie die Verwaltung von großen Datenbeständen im Petabyte-Bereich. Die FH Köln hat die entscheidenden Fakten zu HDFS im hauseigenen Online-Lexikon gut nachvollziehbar zusammengestellt.

Hive: Das Java-basierte Datawarehouse Apache Hive wurde ursprünglich von Google entwickelt, im Sommer 2008 stellte der Konzern das System jedoch der Open-Source-Gemeinde zur freien Weiterentwicklung zur Verfügung. Hive ergänzt Hadoop um Data-Warehouse-Funktionalitäten wie die Anfragesprache HQL und Indizes. HQL ist eine auf SQL basierende Abfragesprache und ermöglicht dem Entwickler somit die Verwendung einer SQL-ähnlichen Syntax. Hive lässt sich in HBase integrieren. Wer mehr über Hive und seine Unterschiede zu anderen Datenbanken erfahren möchte, erhält weitere Informationen im Online-Lexikon der Fachhochschule Köln.

Hortonworks: Das Unternehmen unter der Federführung von Eric Baldeschweiler ist 2011 aus dem Yahoo!-Team hervorgegangen, das sich maßgeblich an der Entwicklung von Hadoop beteiligt hat. Die Hortonworks Data Platform ist eine quelloffene, auf dem Hadoop-Framework basierende Komplettlösung, die aufeinander abgestimmte Komponenten – von der Verarbeitung der Daten bis zum Monitoring der Cluster – umfasst.

Mahout: Apache Mahout ist eine freie, in Java geschriebene Programmbibliothek unter Apache-Lizenz, die für verteiltes, maschinelles Lernen und Data Mining angelegt wurde. Die Software setzt ebenfalls auf Hadoop auf. Eine “Mahout in 3 Minuten”-Einführung gibt es hier.

MapReduce: Das Programmierframework MapReduce wurde 2004 von Google eingeführt und trägt seitdem maßgeblich dazu bei, die parallele und verteilte Verarbeitung von Daten so effizient wie möglich zu gestalten. Das Prinzip in einfachen Worten: Die MapReduce-Methode zerlegt eine Aufgabe in kleinste Teile, verteilt diese zur parallelen Verarbeitung auf möglichst viele Rechenknoten (mapping) und führt anschließend das Ergebnis zusammen (reduce). Ein kleines Programmierbeispiel für das Prinzip von MapReduce gibt es auf ScienceBlogs. In einer Seminararbeit der Berliner Humboldt-Universität heißt es: „Die Stärke von MapReduce liegt in der Einführung einer neuen Abstraktionsebene, die die technisch komplexen Aspekte der parallelen Programmierung wie Last- und Datenverteilung oder Fehlertoleranz innerhalb eines Frameworks vor dem Benutzer verbirgt. Ein Benutzer, der gegen die Schnittstellen des Frameworks programmiert, muss sich nur noch mit der Frage „Was soll berechnet werden?“ befassen und nicht mehr darauf konzentrieren, wie die Parallelverarbeitung läuft. Ein weiterer praktischer Vorteil von MapReduce ist die Möglichkeit, handelsübliche Standard-Hardware zu verwenden. Die Einführung in das Thema MapReduce von Stefan Bethge und Astrid Rheinländer kann als PDF heruntergeladen werden.

Pig: Apache Pig ist eine von Yahoo entwickelte Plattform zur Analyse großer Datenmengen, die 2007 in den Apache-Pool überging. Möglich ist die Analyse von Big Data durch eine einfache Skriptsprachen-Syntax, die Datenrelationen und deren Verarbeitung beschreibt. Pig-Skripte werden automatisch in eine Anzahl Mapper- und Reducer-Prozesse des Hadoop-Frameworks übersetzt und ausgeführt. Auf diese Weise können Ad-hoc-Abfragen in großen Datenbeständen innerhalb einer Hadoop-Umgebung ausgeführt werden. Wirtschaftsinformatiker an der Universität Stralsund haben einen Interessanten Vergleich zwischen Pig und Hive veröffentlicht.

Serialisierung (Serialization): Diese Technologie ist essentiell für ein schnelles Processing von großen Datenmengen. Bei der Serialisierung wird der Zustand einzelner Datenelemente, den sogenannten Objekten, zusammen mit all ihren Verknüpfungen in eine Folge von Bytes umgewandelt. Objekte können ganz konkret einen bestimmten, vorab definierten Datentyp (Klasse) beschreiben. Das kann so etwas Pragmatisches wie beispielsweise die Angabe einer Adresse in den einzelnen Elementen Straße, Hausnummer, Postleitzahl und Ort sein. Die Serialisierung solcher Datenobjekte hat zahlreiche Vorteile, da Objekteigenschaften mit dieser Methode nicht separat gespeichert werden müssen und trotzdem auch außerhalb ihres Programmes weiterexistieren können. Diese Eigenschaften sind bei verteilten Systemen für ein effizientes Daten-Processing sehr wichtig. Eine ausführliche Erklärung bietet das Online-Lexikon IT-Wissen.

Yarn: Apache Yarn alias MapReduce 2.0 (MRv2) ist der Nachfolger der originalen MapReduce-Version. YARN trennt Jobtracker, Ressourcenverwaltung sowie Job-Scheduling und -Monitoring. Dafür stehen ein globaler Resource Manager (RM) und ein applikationsspezifischer Application Master (AM) zur Verfügung, wobei eine Applikation ein herkömmlicher MapReduce-Job oder eine komplexe Zusammenstellung sein kann. Mit Yarn soll der Einsatzbereich von Hadoop erweitert und die Geschwindigkeit der Hadoop-Operationen erhöht werden.

ZooKeeper: Apache ZooKeeper erledigt das zentralisierte Konfigurationsmanagement von Hadoop-Umgebungen. Es verwaltet die Konfiguration, das Naming oder auch Synchronisierungsprozesse innerhalb verteilter Systeme.