Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
S3 StreamingFileSink FileNotFoundExceptions
Le applicazioni Managed Service for Apache Flink possono essere eseguite in un file di In-progress parte all'FileNotFoundExceptionavvio da istantanee se manca un file di In-progress parte a cui fa riferimento il relativo punto di salvataggio. Quando si verifica questa modalità di errore, lo stato dell'operatore dell'applicazione di servizio gestito per Apache Flink non è in genere ripristinabile e deve essere riavviato senza utilizzare uno snapshot SKIP_RESTORE_FROM_SNAPSHOT. Vedi il seguente esempio di stack trace:
java.io.FileNotFoundException: No such file or directory: s3://amzn-s3-demo-bucket/pathj/INSERT/2023/4/19/7/_part-2-1234_tmp_12345678-1234-1234-1234-123456789012 at org.apache.hadoop.fs.s3a.S3AFileSystem.s3GetFileStatus(S3AFileSystem.java:2231) at org.apache.hadoop.fs.s3a.S3AFileSystem.innerGetFileStatus(S3AFileSystem.java:2149) at org.apache.hadoop.fs.s3a.S3AFileSystem.getFileStatus(S3AFileSystem.java:2088) at org.apache.hadoop.fs.s3a.S3AFileSystem.open(S3AFileSystem.java:699) at org.apache.hadoop.fs.FileSystem.open(FileSystem.java:950) at org.apache.flink.fs.s3hadoop.HadoopS3AccessHelper.getObject(HadoopS3AccessHelper.java:98) at org.apache.flink.fs.s3.common.writer.S3RecoverableMultipartUploadFactory.recoverInProgressPart(S3RecoverableMultipartUploadFactory.java:97) ...
Flink StreamingFileSink scrive i record su file system supportati dai File System.
Durante il checkpoint e il savepoint (cattura degli snapshot), tutti i file in sospeso vengono rinominati e salvati. Tuttavia, i file di In-progress parte non vengono salvati ma rinominati e il loro riferimento viene mantenuto nei metadati di checkpoint o savepoint da utilizzare durante il ripristino dei lavori. Questi file di In-progress parte verranno infine trasferiti in Pending, rinominati e salvati da un checkpoint o savepoint successivo.
Di seguito sono riportate le cause principali e le misure di mitigazione del file di parte mancante: In-progress
Istantanea obsoleta utilizzata per avviare l'applicazione Managed Service for Apache Flink: solo l'ultima istantanea del sistema scattata quando un'applicazione viene arrestata o aggiornata può essere utilizzata per avviare un'applicazione Managed Service for Apache Flink con Amazon S3. StreamingFileSink Per evitare questa classe di errori è consigliabile utilizzare lo snapshot di sistema più recente.
Ciò accade ad esempio quando si sceglie uno snapshot creato utilizzando
CreateSnapshotinvece di uno innescato dal sistema durante l'arresto o l'aggiornamento. Il punto di salvataggio della vecchia istantanea mantiene un riferimento non aggiornato al file di parte che è stato rinominato e salvato dal successivo checkpoint o savepoint. In-progressCiò può accadere anche quando viene selezionata un'istantanea attivata dal sistema da un evento non più recente. Stop/Update Un esempio è un'applicazione con lo snapshot del sistema disabilitato ma
RESTORE_FROM_LATEST_SNAPSHOTconfigurato. In genere, le applicazioni Managed Service for Apache Flink con Amazon StreamingFileSink S3 devono sempre avere lo snapshot di sistema abilitato e configurato.RESTORE_FROM_LATEST_SNAPSHOT
In-progress file di parte rimosso: poiché il file di In-progress parte si trova in un bucket S3, può essere rimosso da altri componenti o attori che hanno accesso al bucket.
Ciò può accadere quando hai interrotto l'app per troppo tempo e il file di In-progress parte a cui fa riferimento il punto di salvataggio dell'app è stato rimosso dalla policy sul ciclo di vita del bucket S3. MultiPartUpload Per evitare questa classe di errori, assicurarsi che la politica sul ciclo di vita del bucket MPU S3 si estenda su un periodo sufficientemente ampio per il caso d'utilizzo.
Ciò può verificarsi anche quando il file di In-progress parte è stato rimosso manualmente o da un altro componente del sistema. Per evitare questa classe di errori, assicuratevi che i file di In-progress parte non vengano rimossi da altri attori o componenti.
Condizione di competizione in cui viene innescato un checkpoint automatico dopo il checkpoint: ciò influisce sulle versioni di servizio gestito per Apache Flink fino alla 1.13 inclusa. Questo problema è stato risolto nella versione 1.15 di Managed Service for Apache Flink. Esegui la migrazione dell'applicazione alla versione più recente di Managed Service for Apache Flink per evitare che si ripetano. Ti suggeriamo anche di migrare da a. StreamingFileSink FileSink
Quando le applicazioni vengono arrestate o aggiornate, il servizio gestito per Apache Flink innesca un savepoint e arresta l'applicazione in due passaggi. Se tra i due passaggi si attiva un checkpoint automatico, il punto di salvataggio sarà inutilizzabile in quanto il relativo file di In-progress parte verrebbe rinominato e potenzialmente salvato.