Suchen

Definition Was ist Apache Flink?

| Autor / Redakteur: Dipl.-Ing. (FH) Stefan Luber / Nico Litzel

Apache Flink ist ein Framework der Apache Software Foundation für das sogenannte Stream Processing. Es ermöglicht die kontinuierliche Verarbeitung von Datenströmen mit geringer Verzögerung. Das Framework ist einsetzbar für Big-Data-Anwendungen und Echtzeitanalysen.

Firmen zum Thema

(Bild: © aga7ta - stock.adobe.com)

Apache Flink ist in der Lage, sowohl kontinuierliche Datenströme als auch Stapeldaten zu verarbeiten. Es handelt sich um ein Framework der Apache Software Foundation, das als Open-Source Software verfügbar ist. Apache Flink hat sich aus einem Apache-Incubator-Projekt entwickelt und wurde zu einem Top-Level-Projekt. Die Veröffentlichung der Version 1.0.0 erfolgte im Jahr 2016. Die aktuellste Version des Frameworks ist die Version 1.7.2 (Stand März 2019). Apache Flink ermöglicht Echtzeitanalysen und kommt häufig im Big-Data-Umfeld zum Einsatz. Das Framework stellt Verfahren bereit, um Datenströme mit hoher Effizienz und Geschwindigkeit fehlertolerant zu verarbeiten. Neben dem Hadoop-Framework unterstützt es weitere Cluster-Computing-Frameworks. Typische Anwendungsbereiche für Apache Flink sind:

  • die Echtzeitkontrolle von Finanztransaktionen
  • die Echtzeitauswertung des Kunden- oder Userverhaltens auf Internetseiten
  • die Echtzeitverarbeitung großer Mengen von Sensordaten der automatisierten Prozesse der Industrie 4.0

Bekannte Unternehmen, die Apache Flink einsetzen, sind beispielsweise Uber und Netflix.

Was ist Stream Processing?

Beim Stream Processing werden Daten kontinuierlich mit geringer Verzögerung verarbeitet. Die Datenverarbeitung erfolgt quasi direkt zum Zeitpunkt, an dem die Informationen und Daten entstehen oder bereitgestellt werden. Diese Art der Datenprozessierung unterscheidet sich deutlich von herkömmlichen Datenverarbeitungsmethoden. Die klassischen Verarbeitungsprozesse arbeiten mit Datenbanken oder Datenservern und speichern die gelieferten Daten zunächst ab. Erst in einem weiteren Schritt greifen die verarbeitenden Anwendungen wie Analyseprogramme auf die in den Datenspeichern vorhandenen Informationen zu. Es entsteht ein relativ großer zeitlicher Versatz zwischen der Generierung und der Auswertung der Informationen.

Stream Processing hingegen erlaubt die unmittelbare Reaktion auf Ereignisse. Vor allem für Anwendungen, bei denen die Daten in kontinuierlichen Streams entstehen wie bei Sensordaten, Finanz-Transaktionsdaten oder User-Trackingdaten, bietet das Stream Processing zahlreiche Vorteile. Stream Processing ist darüber hinaus in der Lage, mehrere Datenstreams parallel zu verarbeiten. Aus jeden Stream lassen sich eigene Folgeaktionen und Analysen ableiten. Systeme, die Datenstreams empfangen und verarbeiten, werden Stream Prozessoren genannt.

Die Wichtigsten Merkmale, Funktionen und Eigenschaften von Apache Flink

Stream Processing und die Echtzeitanalyse stellt IT-Systeme vor einige Herausforderungen. Das Apache-Flink-Framework stellt Lösungen für das Stream Processing bereit, die diese Herausforderungen meistern. Eine wichtige Eigenschaft von Apache Flink ist die Fehlertoleranz. Das Framework ist für Cluster-Computing konzipiert und arbeitet in hochverfügbaren Systemen ohne Single Point of Failure. Bei Ausfällen einzelner Komponenten ist die Konsistenz aller Ereigniszustände wiederherstellbar.

Für die Stream-Processing-Anwendungen stellt Apache Flink mehrere APIs bereit. Die Basis-API ist die DataStream-API. Zum Steuern laufender Anwendungen ist eine REST-API vorhanden. Ebenfalls nutzbar sind eine Tabellen-API und die SQL-Unterstützung. Es lassen sich Schnittstellen zu Streaming- und Batch-Quellen realisieren. Neben den APIs verfügt Apache Flink über verschiedene Bibliotheken, die für die Prozessierung von Grafiken, für die Analytik oder für die Verarbeitung komplexer Ereignisse verwendet werden können. Eine dieser Bibliotheken ist die CEP-Bibliothek (Complex Event Processing).

Die Prozessfunktionen (ProcessFunctions) von Apache Flink erlauben es, den Zustand und die Zeit von Ereignissen zu kontrollieren. Ereigniszustände lassen sich speichern und mit Timern für zukünftige Berechnungen versehen. Für häufig verwendete Streaming- und Speichersysteme sind Konnektoren vorhanden. Zu den von Apache Flink unterstützten Dateisystemen zählen HDFS, NFS und S3.

Vorteile durch den Einsatz von Apache Flink

Apache Flink und das Stream Processing bieten zahlreiche Vorteile. Datenströme mit hohem Datenvolumen lassen sich mit geringer Verzögerung und hoher Geschwindigkeit verarbeiten und analysieren. Es sind sowohl kontinuierliche Datenströme als auch Daten eines Dateisystems lesbar. Anwendungen sind in der Lage, binnen Sekundenbruchteilen auf neue Informationen zu reagieren. Das Apache-Flink-Framework ist extrem skalierbar und fehlertolerant. Das Stream Processing dezentralisiert und entkoppelt die benötigte IT-Infrastruktur, da keine eigenen Datenbankstrukturen notwendig sind. Kurz zusammengefasst sind die Vorteile von Apache Flink folgende:

  • Echtzeitverarbeitung von Daten mit minimalem Zeitversatz
  • hoher Datendurchsatz
  • keine Datenbankinfrastruktur notwendig
  • Daten lassen sich so wie sie entstehen kontinuierlich verarbeiten
  • Fehlertoleranz und hohe Verfügbarkeit
  • die Konsistenz der Ereigniszustände ist zu jeder Zeit sichergestellt
  • auch für die Batch-Verarbeitung geeignet
  • gute Skalierbarkeit der Plattform
  • Unterstützung von SQL durch die SQL-API
  • Unterstützung zahlreicher Plattformen, Frameworks und Systeme wie Kafka, Kinesis, Kubernetes, YARN, HDFS und weiterer
  • Unterstützung und Support durch eine große Open-Source-Community

(ID:45818769)

Über den Autor