Data Science. Michael Oettinger
pressen lassen müssen.
Man muss sich aber bewusst darüber sein, dass die Verfahren, mit denen aus Daten Erkenntnisse für eine Prognose gewonnen werden, auf strukturierte Daten angewiesen sind. Das bedeutet nicht, dass das „SQL-Korsett“ für die Rohdaten eingehalten werden muss, aber die Aufbereitung vor der Analyse erfordert eine Strukturierung. Bei der Verwendung von NoSQL-Datenbanken müssen daher die ja immer vorhandenen Strukturen der Datenhaltung beachtet und die entsprechende Aufbereitungsschritte angewendet werden.
Wichtige Anbieter von NoSQL-Datenbanken sind:2
• MongoDB
• Cassandra
• Redis
• HBase
• Couchbase
• NoSQL-Angebote der Cloudanbieter wie AWS und MS Azure
2.5 Hadoop/Spark
Apache Hadoop ist ein Software-Framework, mit dessen Hilfe rechenintensive Prozesse mit großen Datenmengen auf Server-Clustern bearbeitet werden können. Anwendungen können mit der Unterstützung Hadoops komplexe Aufgaben auf Tausende von Rechnerknoten verteilen und Datenvolumina im Petabyte-Bereich verarbeiten. Es basiert ursprünglich auf dem MapReduce-Algorithmus und Grundideen des Google-Dateisystems. Hadoop wird von der Apache Software Foundation – einer Gemeinschaft von Entwicklern, die Open-Source-Softwareprodukte entwickeln – als Top-Level-Projekt vorangetrieben.
Hadoop besteht aus vier Kernmodulen und weiteren Komponenten, die zum Hadoop Ecosystem gerechnet werden.
Die vier Kernmodule sind:
• Hadoop Common: Hilfswerkzeug, das die Hadoop-Komponenten verwaltet bzw. unterstützt.
• Hadoop Distributed File System (HDFS): HDFS ist ein hochverfügbares Dateisystem zur Speicherung sehr großer Datenmengen auf den Dateisystemen mehrerer Rechner (Knoten). Dateien werden in Datenblöcke mit fester Länge zerlegt und redundant auf die teilnehmenden Knoten verteilt. Dabei gibt es Master- und Slave-Knoten. Ein Master-Knoten, der sogenannte NameNode, bearbeitet eingehende Datenanfragen, organisiert die Ablage von Dateien in den Slave-Knoten und speichert anfallende Metadaten. HDFS unterstützt dabei Dateisysteme mit mehreren 100 Millionen Dateien.
• Hadoop YARN: Eine Softwarelösung, die die Verwaltung der Ressourcen (also das Job-Scheduling) eines Clusters übernimmt.
• Hadoop MapReduce: Ein auf YARN basierendes System, das paralleles Prozessieren großer Datenmengen realisiert. Hadoop beinhaltet den MapReduce-Algorithmus, dieser gilt aber zunehmend als veraltet und wird durch graphenbasierte Verfahren (Spark, Tez) ersetzt.
Insbesondere Spark hat mittlerweile die größere Verbreitung im Hadoop-Umfeld und hat MapReduce als Prozess-Engine abgelöst.
Im Rahmen von Apache werden weitere Projekte als zum Hadoop Ecosystem zugehörig gezählt:
• Ambari: Ambari ist eine Managementplattform, die die Verwaltung (Provisionierung, Management, Monitoring) der Hadoop-Cluster vereinfachen soll. Unterstützt werden: HDFS, Hadoop MapReduce, Hive, HCatalog, HBase, ZooKeeper, Oozie, Pig and Sqoop.
• Avro: Avro ist ein System zur Serialisierung von Daten.
• Cassandra: Cassandra ist ein skalierbares NoSQL-Datenbanksystem für Hadoop-Cluster.
• Chukwa: Chukwa ermöglicht die Datensammlung und Echtzeitüberwachung sehr großer verteilter Systeme.
• HBase: HBase ist eine skalierbare Datenbank zur Verwaltung großer Datenmengen innerhalb eines Hadoop-Clusters. Die HBase-Datenbank basiert auf Googles BigTable. Diese Datenstruktur ist für Daten geeignet, die selten verändert, dafür aber häufig ergänzt werden. Mit HBase lassen sich Milliarden von Zeilen verteilt und effizient verwalten.
• Hive: Hive ist eine Data-Warehouse-Infrastrukturkomponente, die Hadoop-Cluster um Data-Warehouse-Funktionalitäten erweitert. Mit HiveQL wird eine SQL-Sprache zur Abfrage und Verwaltung der Datenbanken bereitgestellt.
• Mahout: Mahout ist eine skalierbare Machine-Learning- und Data-Mining-Library, die aber nicht mehr weiterentwickelt wird.
• Pig: Pig ist einerseits eine Hochsprache für Datenfluss-Programmierung, andererseits ein Framework, das die Parallelisierung der Rechenvorgänge unterstützt.
• Spark: Spark ist eine performante In-Memory-Batch-Prozess-Engine für Hadoop-Daten. Spark unterstützt ETL-, Machine-Learning-, Streaming- und Graphenprozesse.
• Tez: Apache Tez ist ein allgemeines Datenfluss-Programmier-Framework. Die ursprünglich von Hortonworks entwickelte Anwendung unterstützt Directed Acyclic Graph (DAG). Tez baut auf YARN auf und wird auch durch YARN gesteuert. Tez kann jeden MapReduce-Job ohne Modifikationen ausführen. MapReduce-Jobs können in einen Tez-Job überführt werden, was die Leistung steigert.
• ZooKeeper: ZooKeeper ist ein performantes System zur Koordination und Konfiguration verteilter Systeme.
Aus der Aufzählung und kurzen Beschreibung der Hadoop-Komponenten wird deutlich, dass es sich bei Hadoop nicht um ein einfaches Datenmanagement-Tool handelt. Es ist vielmehr ein komplexes und sich dynamisch veränderndes Sammelsurium an Projekten und Softwareprodukten, die der Idee der verteilten Datenhaltung von Big Data folgen.
Die unterschiedlichen Hadoop-Komponenten können von der Homepage der Apache Foundation kostenlos heruntergeladen werden. Unternehmen greifen aber bei Hadoop auf die Dienstleistungen kommerzieller Hadoop-Distributoren zurück. Diese bieten vorgefertigte Pakete mit z. T. zusätzlichen Komponenten an. In der Regel fallen keine Lizenzkosten an, es wird aber eine Subscription-Fee verlangt, also eine Mietgebühr für die Wartung, Pflege und den Support der Software. Wichtige Anbieter sind:
• Cloudera (Fusion mit Hortonworks im Q1 2019)
• MapR
• IBM
• Pivotal
Daneben haben die Cloud-Anbieter eigene Hadoop-Angebote:
• Amazon Web Services EMW
• Microsoft Azures HDInsight
Cloudera hat mit der Data-Platform ein Angebot, das über die Distribution der Apache Hadoop/Spark-Komponenten hinausgeht (Data-Hub) und diese mit weiteren Komponenten zu einer integrierten Datenplattform bündelt. Die Installation kann on-premises, in der Cloud oder hybrid erfolgen.
Abbildung 2: Cloudera-Data-Platform
Hadoop ist ein für Unternehmen sehr attraktives Produkt, da es als Open-Source-Projekt grundsätzlich lizenzkostenfrei bezogen werden kann und für die Herausforderungen des Datenwachstums eine kostengünstige Lösung zu bieten scheint.
Im vorangegangenen Abschnitt zum Thema Data-Lake wurde schon auf die Herausforderung eingegangen: Für die exponentiell wachsende Datenmenge an strukturierten und unstrukturierten Daten soll eine integrierte technische Plattform bereitgestellt werden. Sowohl strukturierte (HBase) als auch weniger strukturierte Daten (HDFS, Cassandra) können mit extremer Skalierbarkeit in einem gemeinsamen Framework verwaltet und bereitgestellt werden. Daher ist Hadoop die ideale technische Plattform, um eine integrierte Datenstrategie des Unternehmens umzusetzen.
Das Thema hat in den letzten Jahren einen Hype erfahren, wobei einige bereits das Ende klassischer Data-Warehouse-Produkte vorhersagten. Die Gründe zu diskutieren, warum das schnelle Ende klassischer Data-Warehouse-Systeme nicht bevorsteht, würde den Rahmen dieses Buches überschreiten. Etwas vereinfacht kann das Thema aber wie folgt zusammengefasst werden:
•