Probleme mit der Anwendung - Managed Service für Apache Flink

Amazon Managed Service für Apache Flink war zuvor als Amazon Kinesis Data Analytics für Apache Flink bekannt.

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Probleme mit der Anwendung

Dieser Abschnitt enthält Lösungen für Fehlerbedingungen, die bei Ihrer Anwendung, die Managed Service für Apache Flink nutzt, auftreten können.

Die Anwendung steckt in einem vorübergehenden Status fest

Wenn sich Ihre Anwendung in einem vorübergehenden Status (STARTING,UPDATING, oderAUTOSCALING) befindetSTOPPING, können Sie Ihre Anwendung beenden, indem Sie die StopApplicationAktion mit dem Force Parameter auf beenden. true Sie können das Beenden einer Anwendung im Status DELETING nicht erzwingen. Wenn sich die Anwendung im Status UPDATING oder AUTOSCALING befindet, können Sie sie alternativ auf die vorherige laufende Version zurücksetzen. Wenn Sie ein Rollback einer Anwendung durchführen, werden Statusdaten aus dem letzten erfolgreichen Snapshot geladen. Wenn die Anwendung keine Snapshots hat, lehnt Managed Service für Apache Flink die Rollback-Anfrage ab. Weitere Informationen zum Zurücksetzen einer Anwendung finden Sie unter RollbackApplicationAktion.

Anmerkung

Das erzwungene Beenden Ihrer Anwendung kann zu Datenverlust oder -duplizierung führen. Um Datenverlust oder doppelte Verarbeitung von Daten bei Anwendungsneustarts zu verhindern, empfehlen wir Ihnen, regelmäßig Snapshots Ihrer Anwendung zu erstellen.

Ursachen für hängengebliebene Anwendungen sind unter anderem:

  • Anwendungszustand ist zu groß: Ein zu großer oder zu persistenter Anwendungszustand kann dazu führen, dass die Anwendung während eines Checkpoint- oder Snapshot-Vorgangs hängen bleibt. Überprüfen Sie die Metriken lastCheckpointDuration und lastCheckpointSize Ihrer Anwendung auf stetig steigende Werte oder ungewöhnlich hohe Werte.

  • Anwendungscode ist zu groß: Stellen Sie sicher, dass die JAR-Datei Ihrer Anwendung kleiner als 512 MB ist. JAR-Dateien, die größer als 512 MB sind, werden nicht unterstützt.

  • Erstellung eines Anwendungs-Snapshots schlägt fehl: Managed Service für Apache Flink erstellt während einer UpdateApplication- oder StopApplication-Anfrage einen Snapshot der Anwendung. Der Service verwendet dann diesen Snapshot-Status und stellt die Anwendung mithilfe der aktualisierten Anwendungskonfiguration wieder her, um exakt einmal eine Verarbeitungssemantik bereitzustellen. Falls die automatische Snapshot-Erstellung fehlschlägt, finden Sie im Folgenden unter Die Erstellung eines Snapshots schlägt feh weitere Informationen.

  • Wiederherstellung aus einem Snapshot schlägt fehl: Wenn Sie einen Operator in einem Anwendungsupdate entfernen oder ändern und versuchen, eine Wiederherstellung aus einem Snapshot durchzuführen, schlägt die Wiederherstellung standardmäßig fehl, wenn der Snapshot Zustandsdaten für den fehlenden Operator enthält. Darüber hinaus bleibt die Anwendung entweder im Status STOPPED oder UPDATING hängen. Um dieses Verhalten zu ändern und sicherzustellen, dass die Wiederherstellung erfolgreich ist, ändern Sie den AllowNonRestoredStateParameter der Anwendung FlinkRunConfigurationauftrue. Dadurch können beim Wiederaufnahmevorgang Zustandsdaten übersprungen werden, die dem neuen Programm nicht zugeordnet werden können.

  • Anwendungsinitialisierung dauert länger: Managed Service für Apache Flink verwendet ein internes Timeout von 5 Minuten (Soft-Einstellung), während auf den Start eines Flink-Auftrags gewartet wird. Wenn Ihr Job innerhalb dieses Timeouts nicht gestartet werden kann, wird ein CloudWatch Protokoll wie folgt angezeigt:

    Flink job did not start within a total timeout of 5 minutes for application: %s under account: %s

    Wenn Sie auf den oben genannten Fehler stoßen, bedeutet dies, dass Ihre mit der main-Methode des Flink-Auftrags definierten Operationen mehr als 5 Minuten dauern, was zu einem Timeout bei der Erstellung des Flink-Auftrags auf der Seite von Managed Service für Apache Flink führt. Wir empfehlen Ihnen, sowohl die JobManagerFlink-Logs als auch Ihren Anwendungscode zu überprüfen, um festzustellen, ob mit dieser Verzögerung bei der main Methode zu rechnen ist. Wenn nicht, müssen Sie Maßnahmen ergreifen, um das Problem zu beheben, damit sie in weniger als 5 Minuten abgeschlossen wird.

Sie können den Status Ihrer Anwendung mithilfe der ListApplications- oder der DescribeApplication-Aktion überprüfen.

Die Erstellung eines Snapshots schlägt feh

Der Service von Managed Service für Apache Flink kann unter den folgenden Umständen keinen Snapshot erstellen:

  • Die Anwendung hat das Snapshot-Limit überschritten. Das Limit für Snapshots ist 1 000. Weitere Informationen finden Sie unter Snapshots.

  • Die Anwendung ist nicht berechtigt, auf ihre Quelle oder Senke zuzugreifen.

  • Der Anwendungscode funktioniert nicht richtig.

  • Bei der Anwendung treten andere Konfigurationsprobleme auf.

Wenn beim Erstellen eines Snapshots während eines Anwendungsupdates oder beim Beenden der Anwendung eine Ausnahme auftritt, setzen Sie die SnapshotsEnabled-Eigenschaft der ApplicationSnapshotConfiguration Ihrer Anwendung auf false und wiederholen Sie die Anfrage.

Snapshots können fehlschlagen, wenn die Operatoren Ihrer Anwendung nicht ordnungsgemäß bereitgestellt werden. Informationen zur Optimierung der Operatorleistung finden Sie unter Operatorenskalierung.

Wenn die Anwendung wieder in einen fehlerfreien Zustand zurückkehrt, empfehlen wir, die SnapshotsEnabled-Eigenschaft Ihrer Anwendung auf true zu setzen.

Auf Ressourcen in einer VPC kann nicht zugegriffen werden

Wenn Ihre Anwendung eine VPC verwendet, die auf Amazon VPC läuft, gehen Sie wie folgt vor, um zu überprüfen, ob Ihre Anwendung Zugriff auf ihre Ressourcen hat:

  • Überprüfen Sie Ihre CloudWatch Protokolle auf den folgenden Fehler. Dieser Fehler weist darauf hin, dass Ihre Anwendung nicht auf Ressourcen in Ihrer VPC zugreifen kann:

    org.apache.kafka.common.errors.TimeoutException: Failed to update metadata after 60000 ms.

    Wenn Sie diesen Fehler sehen, überprüfen Sie, ob Ihre Routing-Tabellen korrekt eingerichtet sind und ob Ihre Konnektoren die richtigen Verbindungseinstellungen haben.

    Informationen zum Einrichten und Analysieren von CloudWatch Protokollen finden Sie unterProtokollierung und Überwachung.

Beim Schreiben in einen Amazon S3 S3-Bucket gehen Daten verloren

Beim Schreiben von Ausgaben in einen Amazon-S3-Bucket mit Apache Flink Version 1.6.2 kann es zu Datenverlusten kommen. Wir empfehlen, die neueste unterstützte Version von Apache Flink zu verwenden, wenn Sie Amazon S3 direkt für die Ausgabe verwenden. Um mit Apache Flink 1.6.2 in einen Amazon S3 S3-Bucket zu schreiben, empfehlen wir die Verwendung von Firehose. Weitere Informationen zur Verwendung von Firehose mit Managed Service für Apache Flink finden Sie unter. Firehose-Spüle

Die Anwendung befindet sich im Status RUNNING, verarbeitet aber keine Daten

Sie können den Status Ihrer Anwendung mithilfe der ListApplications- oder der DescribeApplication-Aktion überprüfen. Wenn Ihre Anwendung den RUNNING Status annimmt, aber keine Daten in Ihre Senke schreibt, können Sie das Problem beheben, indem Sie Ihrer Anwendung einen CloudWatch Amazon-Protokollstream hinzufügen. Weitere Informationen finden Sie unter Arbeiten mit den Optionen für die CloudWatch Anwendungsprotokollierung. Der Protokollstream enthält Meldungen, mit denen Sie Anwendungsprobleme beheben können.

Fehler beim Snapshot, beim Anwendungsupdate oder beim Beenden der Anwendung: InvalidApplicationConfigurationException

Während eines Snapshot-Vorgangs oder während eines Vorgangs, der einen Snapshot erstellt, z. B. beim Aktualisieren oder Beenden einer Anwendung, kann ein Fehler auftreten, der dem folgenden ähnelt:

An error occurred (InvalidApplicationConfigurationException) when calling the UpdateApplication operation: Failed to take snapshot for the application xxxx at this moment. The application is currently experiencing downtime. Please check the application's CloudWatch metrics or CloudWatch logs for any possible errors and retry the request. You can also retry the request after disabling the snapshots in the Managed Service for Apache Flink console or by updating the ApplicationSnapshotConfiguration through the AWS SDK

Dieser Fehler tritt auf, wenn die Anwendung keinen Snapshot erstellen kann.

Wenn dieser Fehler während eines Snapshot-Vorgangs oder eines Vorgangs, der einen Snapshot erstellt, auftritt, gehen Sie wie folgt vor:

  • Deaktivieren Sie Snapshots für Ihre Anwendung. Sie können dies entweder in der Managed Service for Apache Flink-Konsole oder mithilfe des SnapshotsEnabledUpdate UpdateApplicationAktionsparameters tun.

  • Untersuchen Sie, warum keine Snapshots erstellt werden können. Weitere Informationen finden Sie unter Die Anwendung steckt in einem vorübergehenden Status fest.

  • Aktivieren Sie Snapshots erneut, wenn die Anwendung wieder fehlerfrei ist.

java.nio.file. NoSuchFileException: /usr/local/openjdk-8/lib/security/cacerts

Der Speicherort des SSL-Truststores wurde in einer früheren Bereitstellung aktualisiert. Verwenden Sie stattdessen den folgenden Wert für den ssl.truststore.location-Parameter:

/usr/lib/jvm/java-11-amazon-corretto/lib/security/cacerts