View a markdown version of this page

Uso della rotazione dei log di eventi Spark - Amazon EMR

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à.

Uso della rotazione dei log di eventi Spark

Con Amazon EMR 6.3.0 e versioni successive, è possibile attivare la funzionalità di rotazione dei log di eventi Spark per Amazon EMR su EKS. Anziché generare un singolo file di log di eventi, questa funzionalità ruota il file in base all'intervallo di tempo configurato e rimuove i file di log di eventi meno recenti.

La rotazione dei log di eventi Spark consente di evitare potenziali problemi con un file di log eventi Spark di grandi dimensioni generato per lunghi processi di streaming o di esecuzione. Supponiamo, ad esempio, di avviare un processo Spark di lunga durata con un log eventi abilitato con il parametro persistentAppUI. Il driver Spark genera un file di log eventi. Se il processo viene eseguito per ore o giorni e lo spazio su disco è limitato nel nodo Kubernetes, il file di log eventi può consumare tutto lo spazio disponibile su disco. Attivando la funzionalità di rotazione dei log di eventi Spark, il problema viene risolto dividendo il file di log in più file e rimuovendo i file meno recenti.

Nota

Questa funzionalità è disponibile solo con Amazon EMR su EKS. Amazon EMR in esecuzione su Amazon EC2 non supporta la rotazione dei log di eventi Spark.

Nota

In Amazon EMR on EKS, la rotazione del registro eventi basata sul tempo (i spark.eventLog.rotation.* parametri descritti in questa pagina) limita la crescita del registro eventi di Spark in base a un intervallo di tempo ed è il meccanismo supportato per farlo. Il rolling event log (spark.eventLog.rolling.*) open source basato sulle dimensioni non è supportato per il caricamento del registro degli eventi su Amazon EMR su EKS. Quando il rolling è abilitato, il driver Spark scrive file di segmento in base alle dimensioni. Il componente di spedizione dei log gestito di Amazon EMR on EKS (l'agente che carica i log degli eventi in modo che le applicazioni vengano visualizzate nello Spark History Server) non raccoglie questi file. Di conseguenza, l'applicazione non viene visualizzata nello Spark History Server anche se il processo viene eseguito correttamente.

Se i registri degli eventi non vengono visualizzati nello Spark History Server, controlla se spark.eventLog.rolling.enabled è impostato e passa alla rotazione del registro eventi come descritto nella sezione seguente.

Per attivare la funzionalità di rotazione dei log di eventi Spark, configura i seguenti parametri Spark:

  • spark.eventLog.rotation.enabled: attiva la rotazione dei log. Questa opzione è disabilitata di default nel file di configurazione di Spark. Impostalo su true (vero) per attivare questa funzionalità.

  • spark.eventLog.rotation.interval: specifica l'intervallo di tempo per la rotazione dei log. Il valore minimo è 60 secondi. Il valore predefinito è 300 secondi.

  • spark.eventLog.rotation.minFileSize: specifica una dimensione minima del file per ruotare il file di log. Il valore minimo e predefinito è 1 MB.

  • spark.eventLog.rotation.maxFilesToRetain: specifica il numero di file di log ruotati da mantenere durante la pulizia. L'intervallo consentito è da 1 a 10. Il valore predefinito è 2.

Puoi specificare questi parametri nella sezione sparkSubmitParameters dell'API di StartJobRun, come illustrato nell'esempio seguente.

"sparkSubmitParameters": "--class org.apache.spark.examples.SparkPi --conf spark.eventLog.rotation.enabled=true --conf spark.eventLog.rotation.interval=300 --conf spark.eventLog.rotation.minFileSize=1m --conf spark.eventLog.rotation.maxFilesToRetain=2"

Migrazione dal registro degli eventi a rotazione alla rotazione

Se attualmente utilizzi il registro degli eventi rotanti open source basato sulle dimensioni, sostituisci spark.eventLog.rolling.* i parametri con i parametri di rotazione. La rotazione limita il registro degli eventi in base a un intervallo di tempo (con una dimensione minima del file) anziché esclusivamente in base alla dimensione del file, quindi scegli un intervallo e una dimensione minima del file adatti alla frequenza di eventi del tuo lavoro. Rimuovi tutte spark.eventLog.rolling.* le impostazioni quando cambi. La tabella seguente associa ogni parametro di rotolamento al suo equivalente di rotazione.

Parametro di rotazione (non supportato) Parametro di rotazione (supportato)
spark.eventLog.rolling.enabled=true spark.eventLog.rotation.enabled=true
spark.eventLog.rolling.maxFileSize(maiuscole in base alla dimensione) spark.eventLog.rotation.interval(maiuscole per ora; minimo 60 secondi, impostazione predefinita 300 secondi), utilizzato con spark.eventLog.rotation.minFileSize (minimo e predefinito 1 MB)
spark.eventLog.rolling.maxFilesToRetain spark.eventLog.rotation.maxFilesToRetain(intervallo valido da 1 a 10, impostazione predefinita 2)