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.
Was ist neu in Amazon Managed Service für Apache Flink 2.2
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
MSF Flink 2.2 meldet jetzt eine Ausnahme, wenn Kunden versuchen, Konfigurationen, die von MSF nicht unterstützt werden, über oder ähnliches zu ändern.
env.getConfig().set()APIs Siehe Eigenschaften der programmatischen Flink-Konfiguration.
Entfernung von Metriken
Die
fullRestartsMetrik wurde in Flink 2.2 entfernt. Verwenden Sie stattdessen dienumRestartsMetrik.Die
bytesRequestedPerFetchMetrik 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
downtimeMetrikenuptimeund sind beide in Flink 2.2 als veraltet markiert und werden bald entfernt. Durch die neueuptimeMetrik ersetzen.runningTimedowntimeErsetzen Sie durch eine oder mehrere vonrestartingTimecancellingTime, 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 (wie
EC2MetadataUtils.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
/tmpdas 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/
Wichtige Änderungen und veraltete Versionen
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
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
SourceFunctionundSinkFunctionSchnittstellen 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
KinesisStreamsSourceundKinesisStreamsSinkvonflink-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 zuArrayListProblemen 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.
Die Funktionen von Apache Flink 2.2 werden unterstützt
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 |
Verfügbarkeit von Anschlüssen
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:
| 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-firehosein einigen Zwischenversionen vonflink-connector-aws-kinesis-firehosezu 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.
Nicht unterstützte und experimentelle Funktionen
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.
Bekannte Probleme
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
KinesisStreamsSourcewith 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
KinesisStreamsSourcewith EFO (Enhanced Fan-Out/ SubscribeToShard) zusammen verwenden,KinesisStreamsSinkkann 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.
Verbessern Sie das Erlebnis
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.
Nächste Schritte
Neu bei Flink 2.2? Eine ausführliche Dokumentation zu Apache Flink 2.2 finden Sie in der Apache Flink
2.2-Dokumentation. Sie planen ein Upgrade? Siehe Upgrade auf Flink 2.2: Vollständige Anleitung
Bedenken hinsichtlich der staatlichen Kompatibilität? Siehe Leitfaden 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.