denisismagilov - stock.adobe.com

Big-Data-Analysen mit Tools der Apache Software Foundation

Die Open-Source-Lösungen der Apache Software Foundation sind im Bereich Big Data Analytics umfangreich. Die verschiedenen Anwendungen im Überblick.

Im Big-Data-Bereich spielen Anwendungen der Apache Software Foundation eine wichtige Rolle. Viele Produkte sind weit verbreitet, darunter Apache Hadoop, Spark, Kafka und Storm. Weitere Lösungen sind bei Datenspezialisten beliebt, zum Beispiel Fluo oder Tez.

Wir zeigen in diesem Beitrag die Möglichkeiten einiger Tools. Eine komplette Liste aller Anwendungen ist auf der Big-Data-Projektseite der Apache Software Foundation zu finden.

Apache Fluo und Apache Accumulo

Apache Fluo arbeitet eng mit Apache Accumulo zusammen. Im Fokus steht dabei das Verarbeiten großer Datenmengen, unter anderem mit Hadoop. Accumulo basiert auf Google BigTable, bietet aber auch die Möglichkeit, Rechte auf Daten zeilenbasiert zu vergeben.

Während Accumulo die kompletten Daten vorhält, kann Fluo inkrementell Daten auslesen und diese schnell verarbeiten. Hier nutzt Fluo Techniken von Google, mit denen der Suchindex der Suchmaschine aufgebaut wird. Neben Accumulo kann Fluo mit YARN verknüpf werden. Zusammen mit Accumulo kann Fluo Data Streams auslesen und mit geringer Latenz verarbeiten. Fluo arbeitet in diesem Bereich außerdem mit Spark zusammen.

Apache Griffin

Apache Griffin dient dazu, die Datenqualität in Big-Data-Umgebungen zu verbessern. Zum Beispiel lassen sich eigene Qualitätskriterien hinterlegen. Wichtig ist ein solches Produkt, wenn die Daten aus verschiedenen Quellen stammen, was im Big-Data-Bereich häufig der Fall ist. Auch hier zeigt sich der Vorteil, den die Verknüpfung verschiedener Apache-Projekte bietet, da Griffin eng mit Kafka und Storm zusammenarbeitet.

Griffin importiert Daten aus verschiedenen Quellen, verarbeitet diese auf Basis der Regeln, die im System hinterlegt sind, und kann diese anschließend anderen Apache-Lösungen zur Verfügung stellen. Zur Datenberechnung setzt Griffin zum Beispiel auf Spark.

Apache Samoa Scalable Advanced Massive Online Analysis (SAMOA)

Apache SAMOA kommt bei der Verarbeitung von großen Datenmengen im Bereich künstliche Intelligenz und maschinelles Lernen zum Einsatz. Das Tool arbeitet eng mit Apache Spark und Apache Samza zusammen. Das Tool wird vor allem genutzt, wenn riesige Datenmengen verarbeitet werden müssen, zu denen herkömmliche Analyse-Tools nicht in der Lage sind.

Apache Tez

Wer sich mit Big Data-Lösungen beschäftigt, kommt in den meisten Fällen kaum um Hadoop herum. Hierbei handelt es sich ebenfalls um ein Apache-Projekt, das von den meisten anderen Apache-Anwendungen unterstützt wird.

Apache Tez hat die Aufgabe, die Verbindung von anderen Systemen mit Hadoop zu verbessern. Dazu können Entwickler Tez in das HDFS-Dateisystem von Hadoop laden und die Lösung für die Datenverarbeitung verwenden. Tez bietet mehr Leistung bei der Verarbeitung von großen Datenmengen, die in einen Hadoop-Cluster eingelesen werden müssen.

Apache Beam

Apache Beam ermöglicht als Parallel Computing Framework das Verarbeiten von nahezu unbegrenzten Datenmengen. Die Lösung lässt sich als Programmiermodell einsetzen, wenn aus verteilten Datenquellen große Datenmengen mit Apache Hadoop oder Spark verarbeitet werden sollen. Dadurch ist es möglich, Pipelines für Batch-Jobs oder Streaming-Daten zu erstellen.

Für Beam gibt es verschiedene SDKs, die Entwickler in ihre bevorzugte Programmierumgebung integrieren können, um direkt aus den eigenen Anwendungen heraus Pipelines zu erstellen. Dazu gehören zum Beispiel Java, Python, Go, Scala und andere Sprachen. Die Execution Engines lassen sich frei wählen. Aktuell sind unter anderem Google Dataflow, Apache Flink, Apache Spark und Hadoop möglich.

Apache Calcite

Apache Calcite ist ein Open Source Framework, mit dem sich Quellsysteme analysieren lassen. Calcite speichert allerdings keine Daten. Das System dient als Vermittler zwischen dem Verarbeitungssystem und der Datenquelle. Dazu sind in Calcite verschiedene SQL-Parser und Abfrage-Engines vorhanden.

Da das System zur Datenübertragung optimiert ist, ist es mit zahlreichen Apache-Systemen kompatibel. Dazu gehören unter anderem Apache Hive, Flink, Drill, Storm und Samza.

Zahlreiche Datenverarbeitungssysteme lassen sich mit Calcite verbinden, um Daten aus verschiedenen Quellen auszulesen. Dabei können zum Beispiel auch JDBC-Treiber zum Einsatz kommen. Calcite unterstützt verschiedene SQL-Dialekte und Erweiterungen für Abfragen und arbeitet mit bekannten SQL-Funktionen, darunter SELECT FROM mit JOIN-Syntax, WHERE und GROUP BY mit GROUPING SETS.

Apache Druid

Apache Druid ist eine Datenbank für Echtzeitanalysen. Müssen Grafiken und Tabellen im Hintergrund immer wieder mit aktuellen Daten versorgt werden, kann Druid seine Stärken ausspielen. Auch bei Adhoc-Abfragen liefert das System schnelle Ergebnisse. Der Einsatz ist vor allem auf das Auslesen von Data Lakes wie Azure Data Lake oder AWS S3 optimiert.

Die Software unterstützt außerdem Apache Kafka und kann mit Apache Hive sowie Ambari integriert werden. Grundsätzlich lässt sie sich ebenfalls als Zeitreihendatenbank einsetzen. Abfragen sind mit SQL möglich. Druid SQL nutzt einen SQL-Layer auf Basis von Apache Calcite.

Apache Flink

Apache Flink ist ein Tool für das Data Streaming und Stream Processing. Vor allem im IoT-Bereich fallen schnell große Datenmengen an, die in kurzer Zeit verarbeitet werden müssen. Das ist eine der Stärken von Apache Flink.

Beim Einsatz von Data Streams oder Stream Processing ist keine Datenspeicherung und vorherige Aufbereitung der Daten notwendig. Auch diese Lösung arbeitet eng mit anderen Analyse-Tools der Apache Software Foundation zusammen, darunter Hadoop, Yarn oder Mesos.

Erfahren Sie mehr über Datenanalyse