應用程式升級時的注意事項和已知 - Managed Service for Apache Flink

Amazon Managed Service for Apache Flink 之前稱為 Amazon Kinesis Data Analytics for Apache Flink。

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

應用程式升級時的注意事項和已知

狀態相容性的已知限制

  • 如果您使用的是表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 連接器的已知問題

  • 如果您使用 Flink 1.11 或更早版本,並且使用amazon-kinesis-connector-flink連接器進行 E nhanced-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-狀態遷移器。

  • 如果您使用 Flink 1.13 或更早版本FlinkKinesisProducer並升級到 Flink 1.15 或更高版本,若要進行可狀態升級,您必須繼續FlinkKinesisProducer在 Flink 1.15 或更新版本中使用,而不是更新版本。KinesisStreamsSink但是,如果您的接收器上已經有自定義uid設置,則應該可以切換到,KinesisStreamsSink因為FlinkKinesisProducer不保持狀態。Flink 會將其視為相同的運算子,因為uid已設定自訂。

用斯卡拉編寫的 Flink 應用程序

  • 從 Flink 1.15 開始,阿帕奇 Flink 不包括斯卡拉在運行時。升級到 Flink 1.15 或更高版本時,您必須在代碼 JAR /zip 中包含要使用的 Scala 版本和其他 Scala 依賴項。如需詳細資訊,請參閱阿帕奇 Flink 1.15.2 版本的 Amazon 管理服務

  • 如果您的應用程序使用斯卡拉,並且您正在將其從 Flink 1.11 或更早版本(斯卡拉 2.11)升級到 Flink 1.13(斯卡拉 2.12),請確保您的代碼使用斯卡拉 2.12。否則,您的 Flink 1.13 應用程序可能無法在 Flink 1.13 運行時找到斯卡拉 2.11 類。

降級 Flink 應用時要考慮的事項

  • 可以降級 Flink 應用程式,但僅限於先前使用舊版 Flink 執行應用程式的情況。對於可狀態升級 Apache Flink 的受管理服務,將需要使用與相符或較早版本拍攝的快照進行降級

  • 如果您將運行時從 Flink 1.13 或更高版本更新到 Flink 1.11 或更早版本,並且如果您的應用程序使用 HashMap 狀態後端,則您的應用程序將不斷失敗。