애플리케이션 업그레이드 시 예방 조치 및 알려진 문제 - Managed Service for Apache Flink

Amazon Managed Service for Apache Flink는 이전에 Amazon Kinesis Data Analytics for Apache Flink로 알려졌습니다.

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

애플리케이션 업그레이드 시 예방 조치 및 알려진 문제

브로커 재시작 후 체크포인트의 Kafka 커밋이 반복적으로 실패함

Kafka 클라이언트 2.8.1의 중요한 오픈 소스 Kafka 클라이언트 버그로 인해 Flink 버전 1.15의 Apache Kafka 커넥터에 알려진 오픈 소스 Apache Flink 문제가 있습니다. 자세한 내용은 브로커 재시작 후 체크포인트에 대한 Kafka 커밋이 반복적으로 실패하고, KafkaConsumer가 commitOffsetAsync 예외 후 그룹 조정자에 대한 연결을 복구할 수 없음을 참조하세요.

이 문제를 방지하려면 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 이하를 사용하고 EFO(Enhanced-fan-out) 지원을 위한 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.

  • Flink 1.13 이하를 FlinkKinesisProducer와 함께 사용하고 Flink 1.15 이상으로 업그레이드하는 경우 상태 저장 업그레이드를 위해 최신가 아닌 Flink 1.15 이상FlinkKinesisProducer에서를 계속 사용해야 합니다KinesisStreamsSink. 하지만 싱크에 사용자 지정가 이미 uid 설정되어 있는 경우 FlinkKinesisProducer가 상태를 유지하지 않기 KinesisStreamsSink 때문에 로 전환할 수 있습니다. Flink는 사용자 지정uid이 설정되어 있으므로 이를 동일한 연산자로 취급합니다.

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 상태 백엔드를 사용하는 경우 애플리케이션이 계속 실패합니다.