Amazon Managed Service for Apache Flink は、以前は Amazon Kinesis Data Analytics for Apache Flink と呼ばれていました。
翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
アプリケーションのアップグレードに関する注意事項と既知の問題
ブローカーの再起動後に Kafka Commit on checkpointing が繰り返し失敗する
Flink バージョン 1.15 の Apache Kafka コネクタには、Kafka クライアント 2.8.1 の重要なオープンソース Kafka クライアントのバグが原因で、既知のオープンソース Apache Flink の問題があります。詳細については、「ブローカーの再起動後にチェックポイントに関する Kafka Commit が繰り返し失敗し、例外 の後にグループコーディネーターへの接続を回復できない
この問題を回避するには、Amazon Managed Service for Apache Flink で Apache Flink 1.18 以降を使用することをお勧めします。
状態互換性の既知の制限
-
テーブル を使用している場合API、Apache Flink は Flink バージョン間の状態互換性を保証しません。詳細については、Apache Flink ドキュメントのステートフルアップグレードと進化
を参照してください。 -
Flink 1.6 の状態は Flink 1.18 と互換性がありません。状態が 1.6 から 1.18 以降にアップグレードしようとすると、 はリクエストAPIを拒否します。1.8、1.11、1.13、1.15 にアップグレードしてスナップショットを作成し、1.18 以降にアップグレードできます。詳細については、Apache Flink ドキュメントの「アプリケーションと Flink バージョンのアップグレード
」を参照してください。
Flink Kinesis Connector の既知の問題
-
Flink 1.11 以前を使用していて、コネクタを
amazon-kinesis-connector-flink
Enhanced-fan-out (EFO) サポートに使用している場合は、Flink 1.13 以降にステートフルアップグレードするための追加の手順を実行する必要があります。これは、コネクタのパッケージ名が変更されているためです。詳細については、「」を参照してくださいamazon-kinesis-connector-flink。 Flink 1.11 以前の
amazon-kinesis-connector-flink
コネクタはパッケージ を使用しますがsoftware.amazon.kinesis
、Flink 1.13 以降の Kinesis コネクタは を使用しますorg.apache.flink.streaming.connectors.kinesis
。このツールを使用して移行をサポートします: amazon-kinesis-connector-flink-state-migrator。 -
で Flink 1.13 以前を使用して
FlinkKinesisProducer
いて、Flink 1.15 以降にアップグレードする場合、ステートフルアップグレードでは、新しい ではなくFlinkKinesisProducer
Flink 1.15 以降を引き続き使用する必要がありますKinesisStreamsSink
。ただし、シンクにカスタムuid
設定が既にある場合は、 が 状態を維持FlinkKinesisProducer
していないKinesisStreamsSink
ため、 に切り替えることができます。カスタムが設定されているため、Flinkuid
はこれを同じ演算子として扱います。
Scala で記述された Flink アプリケーション
-
Flink 1.15 以降、Apache Flink にはランタイムに Scala は含まれません。Flink 1.15 以降にアップグレードするときは、使用する Scala のバージョンと他の Scala の依存関係をコード JAR/zip に含める必要があります。詳細については、「Amazon Managed Service for Apache Flink for Apache Flink 1.15.2 リリース」を参照してください。
-
アプリケーションが Scala を使用していて、Flink 1.11 以前 (Scala 2.11) から Flink 1.13 (Scala 2.12) にアップグレードする場合は、コードが Scala 2.12 を使用していることを確認してください。それ以外の場合、Flink 1.13 アプリケーションは Flink 1.13 ランタイムで Scala 2.11 クラスを検出できない可能性があります。
Flink アプリケーションをダウングレードするときに考慮すべきこと
-
Flink アプリケーションのダウングレードは可能ですが、以前の Flink バージョンでアプリケーションが以前に実行されていた場合に限られます。ステートフルアップグレードの場合、Apache Flink 用 Managed Service では、ダウングレードに一致する以前のバージョンで取得したスナップショットを使用する必要があります。
-
ランタイムを Flink 1.13 以降から Flink 1.11 以前に更新し、アプリケーションが HashMap 状態バックエンドを使用している場合、アプリケーションは継続的に失敗します。