Einführung in Apache Flink:
Apache Flink ist ein Framework und eine verteilte Verarbeitungs-Engine für zustandsbehaftete Berechnungen auf unbegrenzten und begrenzten Datenströmen. Flink läuft in allen gängigen Clusterumgebungen und kann mit Speichergeschwindigkeit und in jedem Maßstab rechnen.
(Empfohlenes Tutorial: Apache)
Als nächstes stellen wir die wichtigen Aspekte der Flink-Architektur vor.
Behandeln Sie unbegrenzte und begrenzte Daten.
Jede Art von Daten kann einen Ereignisstrom bilden. Kreditkartentransaktionen, Sensormessungen, Maschinenprotokolle, Benutzerinteraktionsaufzeichnungen auf einer Website oder einer mobilen App – all diese Daten bilden einen Stream.
Daten können als unbegrenzte oder begrenzte Streams verarbeitet werden.
1. Unbegrenzter Fluss Der Beginn des Flusses ist definiert, aber das Ende des Flusses ist nicht definiert. Sie generieren endlos Daten. Die Daten des unbegrenzten Flusses müssen kontinuierlich verarbeitet werden, dh die Daten müssen unmittelbar nach der Aufnahme verarbeitet werden. Wir können mit der Verarbeitung nicht warten, bis alle Daten eintreffen, da die Eingabe unendlich ist und zu keinem Zeitpunkt abgeschlossen sein wird. Die Verarbeitung unbegrenzter Daten erfordert häufig die Aufnahme von Ereignissen in einer bestimmten Reihenfolge, beispielsweise in der Reihenfolge ihres Auftretens, um auf die Vollständigkeit der Ergebnisse schließen zu können.
2. Der begrenzte Fluss definiert den Beginn des Flusses und das Ende des Flusses. Begrenzte Streams ermöglichen die Durchführung von Berechnungen, nachdem alle Daten erfasst wurden. Alle Daten in begrenzten Streams können sortiert werden, sodass keine geordnete Aufnahme erforderlich ist. Die Bounded-Stream-Verarbeitung wird oft als Stapelverarbeitung bezeichnet.
Apache Flink ist gut in der Verarbeitung unbegrenzter und begrenzter Datensätze. Präzise Zeitsteuerung und Zustandsbezogenheit ermöglichen es der Flink-Laufzeitumgebung, jede Anwendung auszuführen, die unbegrenzte Streams verarbeitet. Begrenzte Streams werden intern durch Algorithmen und Datenstrukturen verarbeitet, die speziell für Datensätze fester Größe entwickelt wurden, was zu einer hervorragenden Leistung führt.
Vertiefen Sie Ihr Verständnis, indem Sie Anwendungsfälle erkunden, die auf Flink basieren.
Anwendungen überall bereitstellen
Apache Flink ist ein verteiltes System, das Rechenressourcen benötigt, um Anwendungen auszuführen. Flink lässt sich in alle gängigen Cluster-Ressourcenmanager wie Hadoop YARN, Apache Mesos und Kubernetes integrieren, kann aber auch als eigenständiger Cluster ausgeführt werden.
Flink ist so konzipiert, dass es gut mit jedem der oben genannten Ressourcenmanager zusammenarbeitet, was durch einen ressourcenmanagerspezifischen Bereitstellungsmodus erreicht wird. Flink kann auf eine Weise interagieren, die dem aktuellen Ressourcenmanager entspricht.
Wenn Sie eine Flink-Anwendung bereitstellen, identifiziert Flink automatisch die erforderlichen Ressourcen basierend auf der konfigurierten Parallelität der Anwendung und fordert diese Ressourcen vom Ressourcenmanager an. Im Falle eines Ausfalls ersetzt Flink den ausgefallenen Container, indem es neue Ressourcen anfordert. Die gesamte Kommunikation zum Einreichen oder Kontrollieren von Anwendungen erfolgt über REST-Aufrufe, was die Integration von Flink in eine Vielzahl von Umgebungen vereinfacht.
Anwendungen in jeder Größenordnung ausführen
Flink ist für die Ausführung von Stateful-Streaming-Anwendungen in jeder Größenordnung konzipiert. Daher wird die Anwendung in potenziell Tausende von Aufgaben parallelisiert, die über den Cluster verteilt und gleichzeitig ausgeführt werden. So können Anwendungen von endlosen CPU-, Speicher-, Festplatten- und Netzwerk-IOs profitieren. Und Flink erleichtert die Aufrechterhaltung eines sehr großen Anwendungsstatus. Sein asynchroner und inkrementeller Prüfpunktalgorithmus hat minimale Auswirkungen auf die Verarbeitungslatenz und gewährleistet gleichzeitig eine exakt einmalige Zustandskonsistenz.
Flink-Benutzer haben einige beeindruckende Skalierbarkeitszahlen in ihren Produktionsumgebungen gemeldet.
Die Verarbeitung von Billionen von Ereignissen pro Tag, die Aufrechterhaltung eines Zustands von mehreren Terabyte bei Anwendungen und die Ausführung von Anwendungen auf Tausenden von Kernen.
Nutzung der Speicherleistung
Stateful Flink-Programme sind für den lokalen Statuszugriff optimiert. Der Status einer Aufgabe wird immer im Speicher verwaltet oder, wenn die Statusgröße den verfügbaren Speicher überschreitet, in einer Datenstruktur auf der Festplatte gespeichert, auf die effizient zugegriffen werden kann. Aufgaben führen alle Berechnungen durch, indem sie auf den lokalen Status (normalerweise im Speicher) zugreifen, was zu einer sehr geringen Verarbeitungslatenz führt. Flink stellt in Fehlerszenarien eine exakt einmalige Zustandskonsistenz sicher, indem der lokale Zustandsspeicher regelmäßig und asynchron beibehalten wird.
Das obige ist der detaillierte Inhalt vonStellen Sie vor, was Apache Flink ist. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!