Amazon Managed Service for Apache Flink (Amazon MSF) は、以前は Amazon Kinesis Data Analytics for Apache Flink と呼ばれていました。
翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
アプリケーションのアップグレードに関する注意事項と既知の問題
ブローカーの再起動後にチェックポイント処理時の Kafka コミットが繰り返し失敗する
Apache Flink 1.15 の Apache Kafka コネクタには既知のオープンソースの問題があり、これは Kafka Client 2.8.1 のオープンソース Kafka Client に存在する重大なバグが原因です。詳細については、「Kafka Commit on checkpointing fails repeatedly after a broker restart
この問題を回避するには、Amazon Managed Service for Apache Flink で Apache Flink 1.18 以降を使用することをお勧めします。
状態の互換性に関する既知の制限事項
-
Table API を使用している場合、Apache Flink は Flink バージョン間の状態の互換性を保証しません。詳細については、Apache Flink ドキュメントの「Stateful Upgrades and Evolution
」を参照してください。 -
Flink 1.6 の状態は Flink 1.18 と互換性がありません。状態付きで 1.6 から 1.18 以降にアップグレードしようとすると、API はリクエストを拒否します。1.8、1.11、1.13、1.15 にアップグレードしてスナップショットを作成し、1.18 以降にアップグレードできます。詳細については、Apache Flink ドキュメントの「Upgrading Applications and Flink Versions
」を参照してください。
Flink Kinesis コネクタの既知の問題
-
Flink 1.11 以前を使用していて、拡張ファンアウト (EFO) サポート用の
amazon-kinesis-connector-flinkコネクタを使用している場合は、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 -
FlinkKinesisProducerで Flink 1.13 以前していて、Flink 1.15 以降にアップグレードする場合は、ステートフルアップグレードするために、新しいKinesisStreamsSinkではなく Flink 1.15 以降で引き続きFlinkKinesisProducerを使用する必要があります。ただし、シンクにカスタムuidが既に設定されている場合、FlinkKinesisProducerでは状態が維持されないため、KinesisStreamsSinkに切り替えることができます。カスタムuidが設定されているため、Flink はこれを同じオペレーターとして扱います。
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 バージョンで実行されていた場合に限られます。ステートフルアップグレードの場合、Managed Service for Apache Flink では、ダウングレード対象と一致するバージョンまたはそれ以前のバージョンで作成されたスナップショットを使用する必要があります。
-
ランタイムを Flink 1.13 以降から Flink 1.11 以前に更新していて、アプリケーションが HashMap 状態バックエンドを使用している場合、アプリケーションは継続的に失敗します。