Uso della rotazione dei log di eventi Spark - Amazon EMR

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.

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"