Von einer eher akademischen Fingerübung hat sich Hadoop zu einer ernst zu nehmenden Technologie entwickelt, mit der sich große Datenbestände erfassen und analysieren lassen - Stichwort Big Data. Mittlerweile bieten nicht nur Spezialisten wie Cloudera, MapR und Hortonworks Hadoop-Distributionen an, die auf den Einsatz in Unternehmen zugeschnitten sind. Auch Schwergewichte der IT-Branche wie IBM, Microsoft und Amazon Web Services engagieren sich in diesem Bereich.
Der "kleine Elefant" Hadoop hat mittlerweile rund zehn Jahre auf dem Buckel. Ursprünglich wurde das Open-Source-Framework für die Verarbeitung, das Speichern und Analysieren von großen Mengen unstrukturierter Daten von Doug Cutting und Mike Cafarella bei Yahoo entwickelt. Cutting gab dem Projekt auch den Namen: Hadoop hieß der Plüschelefant seines kleinen Sohnes.
Mittlerweile wird Hadoop als Open-Source-Software (http://hadoop.apache.org/) unter der Schirmherrschaft der Apache Software Foundation weiterentwickelt. Zu den Grundprinzipen von Hadoop zählt das Scale-out, eine horizontale Skalierung mittels Server-Clustern:. Bei Bedarf werden weitere Server in das Cluster integriert. Umstritten ist, ob Hadoop mit Standard-Prozessoren, etwa x86-/x64-CPUs von Intel oder AMD, die bessere und preisgünstigere Wahl für solche Systeme ist. Laut einer Studie von Microsoft kommt es auf die "Jobs" an, also die Art und den Umfang der Datenverarbeitungsprozesse. Statt eines kleinen Clusters ist es demnach in manchen Fällen besser, einen großen Scale-up-Server einzusetzen.
Hadoop besteht aus zwei Kernelementen:
• Erstens dem verteilten Dateisystem Hadoop Distributed File System (HDFS). Es ist für die Speicherung und das Management großer Mengen unstrukturierter Daten ausgelegt. Allerdings haben einige Anbieter von Hadoop-Distributionen HDFS gegen andere Dateisysteme ausgetauscht, beispielsweise MapR.
• Zweitens MapReduce, seit Version 2 von Hadoop als YARN (Yet Another Resource Negotiator) bekannt. Dieses Framework ist für die parallele, verteilte Bearbeitung von Daten in einer Cluster-Umgebung zuständig.
Eine Hadoop-Implementierung wiederum besteht aus folgenden Cluster-Komponenten:
• Name Nodes: Sie stellen Informationen darüber bereit, auf welchen Cluster-Knoten einzelne Daten lagern und ob Knoten ausgefallen sind.
• Secondary Nodes: Sie entlasten die Name Nodes.
• JobTracker: Diese Knoten koordinieren die MapReduce-Jobs und sind für die Verarbeitung der Daten zuständig.
• Slave Nodes: Sie sind die "Arbeitstiere" im Hadoop-Cluster und speichern die Daten.
Hadoop arbeitet nach dem Prinzip "Teilen, parallel verarbeiten, wieder zusammenführen". Große Datenmengen werden in kleine Häppchen unterteilt und separat von Mitgliedern eines Clusters bearbeitet. Die Resultate dieser Einzelanalysen führt die Software anschließend wieder zusammen. Eine weitere Besonderheit von Hadoop ist, dass der Programmcode zu den Daten transferiert wird, nicht - wie üblich - die Daten zur Software. Dies erhöht die Leistung und reduziert die Datenmengen, die über das Netz transportiert werden müssen.
Eingeschränkte Echtzeitfähigkeit
Als Schwachpunkt von Hadoop gilt, dass es im Prinzip auf einer Batch-Verarbeitung basiert. Dies beeinträchtigt die Bearbeitungsgeschwindigkeit der Daten und führt dazu, dass sich die ursprüngliche Version von Hadoop nur eingeschränkt für die Echtzeitanalyse großer Informationsmengen eignet.
Dieses Manko sollen Erweiterungen wie Storm und Tez beseitigen, Projekte, die ebenfalls unter dem Dach der Apache-Stiftung und in der "Hadoop-Ökosphäre" angesiedelt sind. Zudem stellen Anbieter von Hadoop-Distributionen eigene Werkzeuge bereit, die Echtzeitanalysen ermöglichen. Ein Beispiel dafür ist Elasticsearch. Die Software der gleichnamigen Firma arbeitet mit der Hadoop-Distribution von Hortonworks zusammen. Elasticsearch wird parallel zu Hortonworks installiert und wertet Daten aus CRM- und ERP-Systemen aus, ebenso Click-Streams und Log-Informationen.
Hadoop im Reinformat oder Distribution
Anwender haben drei Optionen, um Hadoop zu nutzen. Erstens können sie auf die Basisversion von Apache Hadoop zurückgreifen. Diese ist als Open Source kostenlos verfügbar, setzt jedoch beträchtliches Know-how beim Nutzer voraus. Das betrifft insbesondere das Aufsetzen und Verwalten eines Hadoop-Server-Clusters. Zwar stehen etliche Tools zur Verfügung, die im Rahmen anderer Apache-Hadoop-Projekte entwickelt werden. Doch müssen diese quasi von Hand implementiert und aufeinander abgestimmt werden.
Für Unternehmen einfacher zu handhaben sind Hadoop-Distributionen, also Pakete, die aus der Basissoftware, Tools und teilweise herstellerspezifischen Erweiterungen bestehen. Anbieter solcher Distributionen sind beispielsweise Amazon, Cloudera, EMC, Hortonworks, IBM, MapR und Microsoft. Ein Vorteil für Unternehmenskunden besteht darin, dass sie vom Hersteller ein integriertes Softwarepaket erhalten, das sich einfacher konfigurieren lässt als die Grundversion von Hadoop. Hinzu kommt die technische Unterstützung durch den Hersteller.
Die dritte Option sind Big-Data-Suites. Sie setzten teilweise auf Hadoop auf, können jedoch auch andere Frameworks nutzen. Im Vergleich zu Hadoop-Distributionen bieten Suiten unter anderem Tools für die Datenmodellierung, Visualisierung, Echtzeitanalyse und ETL-Prozesse (Extract, Transfer, Load). Anbieter solcher Big-Data-Suites sind Teradata, Tableau Software und Talend. Aber auch etablierte Unternehmen aus dem Datenbank- und Business-Intelligence-Umfeld wie IBM, Oracle und SAP haben entsprechende Produkte entwickelt.
Hadoop-Einsatzgebiete
Die klassischen Einsatzgebiete von Hadoop entsprechen denen, die generell im Big-Data-Umfeld anzutreffen sind. Immer wichtiger werden beispielsweise das Auswerten des Nutzerverhaltens auf Social-Media-Plattformen und die Click-Stream-Analyse der Aktivitäten von Usern auf Websites. Aufgrund dieser Daten können Unternehmen frühzeitig Trends erkennen oder feststellen, welche Nutzergruppen sich für bestimmte Angebote, Produkte oder Themen interessieren.
Ebenfalls für Unternehmen aus der Internet- und Online-Branche sind Auswertungen interessant, wie zum Beispiel Inhalte (Content) von Adressaten aufgenommen und genutzt werden. Solche Untersuchungen lassen sich mit Big-Data-Auswertungen bis auf die Ebene der benutzten Endgeräte (Smartphones, Tablets), Content-Formate und Nutzergruppen herunterbrechen. Wenn vorhanden, lassen sich demografische und weitere personenbezogene Informationen in die Analysen einbinden.
Ein weiteres Anwendungsfeld ist die Auswertung von Informationen, die Maschinen und Netzsysteme bereitstellen. Das viel zitierte "Internet der Dinge" wird in kommenden Jahren maßgeblich zum Anstieg der Datenmengen beitragen. Sensoren, Mess- und Steuerungssysteme, RFID-Chips und Near-Field-Communication-Bausteine (NFC) liefern Daten in unterschiedlichen Formaten, die auf vielfältige Weise genutzt werden können, etwa um die Transportwege und Vorratshaltung von Waren zu optimieren oder in der Verkehrsplanung. Service-Provider wiederum können durch Auswertung der Auslastung von Mobilfunk-, DSL- und Kabel-TV-Netzen ihre Infrastruktur besser auf das Nutzerverhalten abstimmen.
Weitere Einsatzfelder sind die Finanzanalyse, die Risikobewertung, der Schutz vor Cyber-Angriffen durch die Auswertung von Datenverkehrsmustern und komplexe Forschungsprojekte, etwa in der Klimaforschung. Dies ist nur ein kleiner Ausschnitt der potenziellen Anwendungsgebiete von Big Data und damit auch Hadoop.