

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# アプリケーションのアップグレードに関する注意事項と既知の問題
<a name="precautions"></a>

## ブローカーの再起動後にチェックポイント処理時の Kafka コミットが繰り返し失敗する
<a name="apache-kafka-connector"></a>

Apache Flink 1.15 の Apache Kafka コネクタには既知のオープンソースの問題があり、これは Kafka Client 2.8.1 のオープンソース Kafka Client に存在する重大なバグが原因です。詳細については、「[Kafka Commit on checkpointing fails repeatedly after a broker restart](https://issues.apache.org/jira/browse/FLINK-28060)」と「[KafkaConsumer is unable to recover connection to group coordinator after commitOffsetAsync exception](https://issues.apache.org/jira/browse/KAFKA-13840)」を参照してください。

この問題を回避するには、Amazon Managed Service for Apache Flink で Apache Flink 1.18 以降を使用することをお勧めします。

## 状態の互換性に関する既知の制限事項
<a name="state-precautions"></a>
+ Table API を使用している場合、Apache Flink は Flink バージョン間の状態の互換性を保証しません。詳細については、Apache Flink ドキュメントの「[Stateful Upgrades and Evolution](https://nightlies.apache.org/flink/flink-docs-master/docs/dev/table/concepts/overview/#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](https://nightlies.apache.org/flink/flink-docs-master/docs/ops/upgrading/)」を参照してください。

## Flink Kinesis コネクタの既知の問題
<a name="kinesis-connector-precautions"></a>
+ Flink 1.11 以前を使用していて、拡張ファンアウト (EFO) サポート用の `amazon-kinesis-connector-flink` コネクタを使用している場合は、Flink 1.13 以降にステートフルアップグレードするために追加の手順を実行する必要があります。これは、コネクタのパッケージ名が変更されているためです。詳細については、[amazon-kinesis-connector-flink](https://github.com/awslabs/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](https://github.com/awslabs/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 アプリケーション
<a name="scala-precautions"></a>
+ 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 リリース](https://docs.aws.amazon.com/managed-flink/latest/java/flink-1-15-2.html)」を参照してください。
+ アプリケーションで 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 アプリケーションをダウングレードする際の考慮事項
<a name="downgrading-precautions"></a>
+ Flink アプリケーションのダウングレードは可能ですが、アプリケーションが以前の Flink バージョンで実行されていた場合に限られます。ステートフルアップグレードの場合、Managed Service for Apache Flink では、ダウングレード対象と一致するバージョンまたはそれ以前のバージョンで作成されたスナップショットを使用する必要があります。
+ ランタイムを Flink 1.13 以降から Flink 1.11 以前に更新していて、アプリケーションが HashMap 状態バックエンドを使用している場合、アプリケーションは継続的に失敗します。