Desidero risolvere gli errori di fase nelle applicazioni Apache Spark in Amazon EMR.
Descrizione breve
In Spark, gli errori di fase si verificano quando si verifica è un problema nell'elaborazione di un'attività Spark. Questi errori possono essere causati da problemi hardware, configurazioni Spark errate o problemi di codice. Quando si verifica un errore di fase, i log del driver Spark segnalano un'eccezione simile alla seguente:
org.apache.spark.SparkException: Job aborted due to stage failure: Task XXX in stage YYY failed 4 times, most recent failure: Lost task XXX in stage YYY (TID ZZZ, ip-xxx-xx-x-xxx.compute.internal, executor NNN): ExecutorLostFailure (executor NNN exited caused by one of the running tasks) Reason: ...
Risoluzione
Ricerca del codice del motivo
Per i processi Spark inviati con il client --deploy-mode, il codice del motivo è nell'eccezione visualizzata nel terminale.
Per i processi Spark inviati con il cluster --deploy-mode, esegui il seguente comando sul nodo principale per trovare gli errori di fase nei log dell'applicazione YARN. Sostituisci application_id con l'ID dell’applicazione Spark (ad esempio, application_1572839353552_0008).
yarn logs -applicationId application_id | grep "Job aborted due to stage failure" -A 10
Puoi anche ottenere queste informazioni da YARN ResourceManager nel container principale dell'applicazione.
Risoluzione della causa principale
Dopo aver trovato l'eccezione, utilizza uno dei seguenti articoli per risolvere la causa principale: