Amazon Managed Service for Apache Flink 之前稱為 Amazon Kinesis Data Analytics for Apache Flink。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
代理程式重新啟動後,Kafka Commit on checkpointing 會重複失敗
由於 Kafka Client 2.8.1 中的重大開放原始碼 Kafka Client 錯誤,Flink 1.15 版中的 Apache Kafka 連接器存在已知的開放原始碼 Apache Flink 問題。如需詳細資訊,請參閱 Kafka Commit on checkpointing 在代理程式重新啟動後重複失敗,
為了避免此問題,建議您在 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
集,您應該可以切換到 ,KinesisStreamsSink
因為FlinkKinesisProducer
不會保持狀態。Flink 會將其視為相同的運算子,因為uid
已設定自訂。
在 Scala 中寫入的 Flink 應用程式
-
自 Flink 1.15 起,Apache Flink 不會在執行階段包含 Scala。升級至 Flink 1.15 或更新版本時,您必須在程式碼JAR/zip 中包含要使用的 Scala 版本和其他 Scala 相依性。如需詳細資訊,請參閱 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 狀態後端,您的應用程式將會持續失敗。