View a markdown version of this page

Amazon Managed Service für Apache Flink 2.2 - Managed Service für Apache Flink

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Amazon Managed Service für Apache Flink 2.2

Amazon Managed Service für Apache Flink unterstützt jetzt Apache Flink Version 2.2. Dies ist das erste Hauptversions-Upgrade für den Service. Auf dieser Seite werden die in Flink 2.2 eingeführten Funktionen sowie wichtige Überlegungen zum Upgrade von Flink 1.x behandelt.

Anmerkung

Flink 2.2 führt bahnbrechende Änderungen ein, die eine sorgfältige Planung erfordern. Lesen Sie die vollständige Liste der wichtigsten Änderungen und veralteten Versionen weiter unten und Leitfaden zur staatlichen Kompatibilität für Flink 2.2-Upgrades vor dem Upgrade von 1.x.

Amazon Managed Service für Apache Flink 2.2 führt Verhaltensänderungen ein, die bestehende Anwendungen beim Upgrade beeinträchtigen können. Lesen Sie diese zusammen mit den Änderungen an der Flink-API im nächsten Abschnitt sorgfältig durch.

Handhabung der programmatischen Konfiguration

Entfernung von Metriken

  • Die fullRestarts Metrik wurde in Flink 2.2 entfernt. Verwenden Sie stattdessen die numRestarts Metrik.

  • Die bytesRequestedPerFetch Metrik für den KDS-Anschluss wurde in der AWS Flink-Connector-Version 6.0.0 entfernt (nur die Connector-Version, die mit Flink 2.2 kompatibel ist).

  • Die downtime Metriken uptime und sind beide in Flink 2.2 als veraltet markiert und werden bald entfernt. Durch die neue uptime Metrik ersetzen. runningTime downtimeErsetzen Sie durch eine oder mehrere von restartingTimecancellingTime, undfailingTime.

  • Eine vollständige Liste der unterstützten Metriken finden Sie auf der Seite Metriken und Dimensionen.

IMDS-Anrufe ohne Anmeldeinformationen wurden blockiert

  • Diese zulässigen Endpunkte werden von den AWS SDKs DefaultCredentialsProvider(/latest/meta-data/iam/security-credentials/) und DefaultAwsRegionProviderChain(/latest/dynamic/instance-identity/document) verwendet, um Anmeldeinformationen und Region für Ihre Anwendung automatisch zu konfigurieren.

  • Anwendungen, die AWS-SDK-Funktionen verwenden und auf IMDS-Aufrufe ohne Anmeldeinformationen angewiesen sind (wieEC2MetadataUtils.getInstanceId(),, oderEC2MetadataUtils.getAvailabilityZone()) EC2MetadataUtils.getInstanceType()EC2MetadataUtils.getLocalHostName(), erhalten HTTP 4xx-Fehler, wenn sie versuchen, diese Aufrufe zu starten.

  • Wenn Ihre Anwendung IMDS-Metadaten oder andere Informationen außerhalb der erlaubten Pfade verwendet, sollten Sie Ihren Code so umgestalten, dass er stattdessen Umgebungsvariablen oder Anwendungskonfigurationen verwendet.

Schreibgeschütztes Root-Dateisystem

  • Um die Sicherheit zu verbessern, führt jede Abhängigkeit, die nicht /tmp das Standard-Flink-Arbeitsverzeichnis ist, zu:. java.io.FileNotFoundException: /{path}/{filename} (Read-only file system)

  • Dateisystemabhängigkeiten können direkt aus Ihrem Code oder indirekt aus Bibliotheken stammen, die in Ihren Abhängigkeiten enthalten sind. Überschreiben Sie direkte Dateisystemabhängigkeiten /tmp/ in Ihrem Code. Verwenden Sie bei indirekten Dateisystemabhängigkeiten von Bibliotheken Überschreibungen der Bibliothekskonfiguration, um Dateisystemoperationen auf diese umzuleiten. /tmp/

Im Folgenden finden Sie eine Zusammenfassung der wichtigsten Änderungen und veralteten Versionen, die in Managed Service for Apache Flink 2.2 eingeführt wurden. In den Versionshinweisen zu Apache Flink 2.0 finden Sie die vollständigen Versionshinweise zu Apache Flink 2.0, in denen diese wichtigen Änderungen eingeführt werden.

Flink-API und Sprachentfernung

DataSet API wurde entfernt

  • Die veraltete DataSet API für die Stapelverarbeitung wurde in Flink 2.0+ vollständig entfernt. Die gesamte Batch-Verarbeitung muss jetzt die einheitliche DataStream API verwenden.

  • Anwendungen, die die DataSet API verwenden, müssen vor dem Upgrade auf die DataStream API migriert werden. Informationen zur Konvertierung finden Sie im Apache DataSet Flink-Migrationsleitfaden DataStream

Java 11 und Python 3.8 wurden entfernt

  • Die Unterstützung für Java 11 wurde vollständig entfernt; Java 17 ist die standardmäßige und empfohlene Laufzeit.

  • Die Unterstützung für Python 3.8 wurde entfernt; Python 3.12 ist jetzt die Standardeinstellung.

Ältere Connector-Klassen wurden entfernt

  • Die alten Versionen SourceFunction und SinkFunction Schnittstellen wurden durch die neuen vereinheitlichten Versionen Source (FLIP-27) und Sink (FLIP-143) ersetzt, die eine bessere Unterstützung für bounded/unbounded Dualität APIs, eine verbesserte Checkpoint-Koordination und ein übersichtlicheres Programmiermodell bieten.

  • Verwenden Sie für Kinesis Data Streams KinesisStreamsSource und KinesisStreamsSink vonflink-connector-aws-kinesis-streams:6.0.0-2.0.

Die Scala-API wurde entfernt

  • Die Flink Scala-API wurde entfernt. Die Java-API von Flink ist jetzt die einzige unterstützte API für JVM-basierte Anwendungen.

  • Wenn Ihre Anwendung in Scala geschrieben ist, können Sie weiterhin die Java-API von Flink aus dem Scala-Code verwenden. Die wichtigste Änderung besteht darin, dass die Scala-spezifischen Wrapper und impliziten Konvertierungen nicht mehr verfügbar sind. Einzelheiten zur Aktualisierung Ihrer Scala-Anwendungen finden Sie unter Upgraden von Anwendungen und Flink-Versionen.

Überlegungen zur staatlichen Kompatibilität

  • Ein Upgrade des Kryo-Serializers von Version 2.24 auf 5.6 kann zu Kompatibilitätsproblemen mit dem Status führen.

  • POJOs Bei Sammlungen (HashMap,,HashSet) kann es zu ArrayList Problemen mit der Statuskompatibilität kommen.

  • Die Avro- und Protobuf-Serialisierung ist davon nicht betroffen.

  • Eine detaillierte Bewertung Leitfaden zur staatlichen Kompatibilität für Flink 2.2-Upgrades zur Bewertung des Risikoniveaus Ihrer Anwendung finden Sie unter.

Laufzeit- und Sprachunterstützung

Feature Description Dokumentation
Java 17-Laufzeit Java 17 ist jetzt die standardmäßige und empfohlene Runtime; die Unterstützung für Java 11 wurde entfernt. Java-Kompatibilität
Support für Python 3.12 Python 3.12 wird jetzt unterstützt; Python 3.8-Unterstützung wurde entfernt. PyFlink Dokumentation

Staatliches Management und Leistung

Feature Description Dokumentation
RocksDB 8.10.0 Verbesserte I/O Leistung mit dem RocksDB-Upgrade. Staatliche Backends
Verbesserungen der Serialisierung Spezielle Serialisierer für Map, List, Set; Kryo wurde von 2.24 auf 5.6 aktualisiert. Geben Sie Serialisierung ein

Funktionen der SQL- und Tabellen-API

Feature Description Dokumentation
VARIANT-Datentyp Native Unterstützung für halbstrukturierte Daten (JSON) ohne wiederholtes Parsen von Zeichenketten. Datentypen
Delta-Join Reduziert die Statusanforderungen für Streaming-Joins, indem nur die neueste Version jedes Schlüssels verwaltet wird. Erfordert eine vom Kunden verwaltete Infrastruktur (z. B. Apache Fluss). Joins
StreamingMultiJoinOperator Führt Multiway-Joins mit einem einzigen Operator aus, wodurch Zwischenmaterialisierungen vermieden werden. FLIP-516
ProcessTableFunction (PTF) Ermöglicht zustandsbehaftete, ereignisgesteuerte Logik direkt in SQL mit Status und Timern pro Schlüssel. Benutzerdefinierte Funktionen
ML_PREDICT-Funktion Rufen Sie registrierte ML-Modelle für streaming/batch Tabellen direkt aus SQL auf. Erfordert, dass der Kunde eine ModelProvider Implementierung bündelt (z. B.flink-model-openai). ModelProvider Bibliotheken werden nicht von Managed Service für Apache Flink ausgeliefert. ML Predict
Modell DDL Definieren Sie ML-Modelle mithilfe von CREATE MODEL-Anweisungen als erstklassige Katalogobjekte. CREATE-Anweisungen
Vektor-Suche Die Flink SQL API unterstützt die Suche nach Vektordatenbanken. Derzeit ist keine VectorSearchTableSource Open-Source-Implementierung verfügbar. Kunden müssen ihre eigene Implementierung bereitstellen. Flink SQL

DataStream API-Funktionen

Feature Description Dokumentation
FLIP-27-Quell-API Neue einheitliche Quellschnittstelle, die die alte ersetzt. SourceFunction Sources (Quellen)
FLIP-143 Sink API Neue einheitliche Sink-Schnittstelle, die die alte ersetzt. SinkFunction Senken
Asynchrones Python DataStream Blockierungsfreie I/O Operationen in der DataStream Python-API unter Verwendung von AsyncFunction. Asynchrone I/O

Wenn Sie auf Flink 2.2 aktualisieren, müssen Sie auch Ihre Connector-Abhängigkeiten auf Versionen aktualisieren, die mit der Flink 2.2-Runtime kompatibel sind. Flink-Konnektoren werden unabhängig von der Flink-Laufzeit veröffentlicht, und es gibt noch nicht für alle Steckverbinder eine Flink 2.2-kompatible Version. Die folgende Tabelle fasst die Verfügbarkeit häufig verwendeter Konnektoren in Amazon Managed Service für Apache Flink zusammen:

Verfügbarkeit von Konnektoren für Flink 2.2
Konnektor Flink 1.20 Version Flink 2.0+ Ausführung Hinweise
Apache Kafka flink-connector-kafka 3.4.0-1.20 flink-connector-kafka 4,0,0-2,0 Empfohlen für Flink 2.2
Kinesis Data Streams (Quelle) flink-connector-kinesis 5.0.0-1.20 flink-connector-aws-kinesis-streamt 6.0.0-2.0 Empfohlen für Flink 2.2
Kinesis Data Streams (Senke) flink-connector-aws-kinesis-Streams 5.1.0-1.20 flink-connector-aws-kinesis-streamt 6.0.0-2.0 Empfohlen für Flink 2.2
Amazon Data Firehose flink-connector-aws-kinesis-Firehose 5.1.0-1.20 flink-connector-aws-kinesis-Feuerwehrschlauch 6.0.0-2.0 Kompatibel mit Flink 2.0
Amazon DynamoDB flink-connector-dynamodb 5.1.0-1.20 flink-connector-dynamodb 6,0,0-2,0 Kompatibel mit Flink 2.0
Amazon SQS flink-connector-sqs 5.1.0-1.20 flink-connector-sqs 6,0,0-2,0 Kompatibel mit Flink 2.0
FileSystem (S3, HDFS) Im Lieferumfang von Flink enthalten Im Paket mit Flink In die Flink-Distribution integriert — immer verfügbar
JDBC flink-connector-jdbc 3.3.0-1.20 Noch nicht für 2.x veröffentlicht Keine Flink 2.x-kompatible Version verfügbar
OpenSearch flink-connector-opensearch 1.2.0-1.19 Noch nicht für 2.x veröffentlicht Keine Flink 2.x-kompatible Version verfügbar
Elasticsearch Nur Legacy-Anschluss Noch nicht für 2.x veröffentlicht Erwägen Sie eine Migration zum Connector OpenSearch
Amazon Managed Service für Prometheus flink-connector-prometheus 1.0.0-1.20 Noch nicht für 2.x veröffentlicht Keine Flink 2.x-kompatible Version verfügbar
  • Wenn Ihre Anwendung von einem Connector abhängt, für den es noch keine Flink 2.x-Version gibt, haben Sie zwei Möglichkeiten: Warten Sie, bis der Connector eine kompatible Version veröffentlicht, oder prüfen Sie, ob Sie ihn durch eine Alternative ersetzen können (z. B. mithilfe des JDBC-Katalogs oder einer benutzerdefinierten Senke).

  • Achten Sie bei der Aktualisierung von Konnektorversionen auf Änderungen der Artefaktnamen — einige Konnektoren wurden zwischen den Hauptversionen umbenannt (z. B. wurde der Firehose-Connector flink-connector-aws-firehose in einigen Zwischenversionen von flink-connector-aws-kinesis-firehose zu geändert).

  • In der Dokumentation zum Amazon Managed Service for Apache Flink Connector finden Sie immer die genauen Namen und Versionen der Artefakte, die in Ihrer Ziel-Runtime unterstützt werden.

Die folgenden Funktionen werden in Amazon Managed Service für Apache Flink 2.2 nicht unterstützt:

  • Materialisierte Tabellen: Kontinuierlich verwaltete, abfragbare Tabellen-Snapshots.

  • Benutzerdefinierte Telemetrieänderungen: Benutzerdefinierte Metrik-Reporter und Telemetriekonfigurationen.

  • ForSt State-Backend: Disaggregierter Statusspeicher (experimentell in Open Source).

  • Java 21: Experimentelle Unterstützung in Open Source, nicht unterstützt in Managed Service für Apache Flink.

Amazon Managed Service für Apache Flink Studio

Flink 2.2 in Amazon Managed Service für Apache Flink unterstützt keine Studio-Anwendungen. Weitere Informationen finden Sie unter Ein Studio-Notizbuch erstellen.

Kinesis-Anschluss EFO

  • Anwendungen, die den in Connector v5.0.0 und v6.0.0 eingeführten Pfad KinesisStreamsSource with EFO (Enhanced Fan-Out/ SubscribeToShard) verwenden, können fehlschlagen, wenn Kinesis-Streams reshardiert werden. Dies ist ein bekanntes Problem in der Community. Weitere Informationen finden Sie unter FLINK-37648.

  • Bei Anwendungen, die den in den Konnektoren v5.0.0 und v6.0.0 eingeführten Pfad KinesisStreamsSource with EFO (Enhanced Fan-Out/ SubscribeToShard) zusammen verwenden, KinesisStreamsSink kann es zu Deadlocks kommen, wenn die Flink-Anwendung unter Gegendruck steht, was zu einem vollständigen Stopp der Datenverarbeitung in einer oder mehreren führt. TaskManagers Ein erzwungener Stop-Vorgang und ein Startvorgang der Anwendung sind erforderlich, um die Anwendung wiederherzustellen. Dies ist ein Unterfall des in der Community bekannten Problems. Weitere Informationen finden Sie unter FLINK-34071.

Amazon Managed Service für Apache Flink unterstützt direkte Versions-Upgrades, die Ihre Anwendungskonfiguration, Protokolle, Metriken, Tags und — falls Status und Binärdateien kompatibel sind — Ihren Anwendungsstatus beibehalten. Anweisungen finden Sie unter. step-by-step Upgrade auf Flink 2.2: Vollständige Anleitung

Hinweise zur Bewertung des Kompatibilitätsrisikos und zum Umgang mit inkompatiblen Zuständen bei Upgrades finden Sie unterLeitfaden zur staatlichen Kompatibilität für Flink 2.2-Upgrades.

Bei Fragen oder Problemen wenden Sie sich an den Support Fehlerbehebung bei Managed Service für Apache Flink oder wenden Sie sich an den AWS Support.