Perché non riesco a eseguire le applicazioni Spark sul mio notebook EMR?
Non riesco a eseguire l'applicazione Apache Spark sul mio notebook Amazon EMR
Breve descrizione
Le applicazioni Spark eseguite da un notebook EMR potrebbero non avviarsi con la seguente eccezione:
The code failed because of a fatal error: Session 4 did not start up in 60 seconds.
Risoluzione
Di seguito sono riportati i passaggi più comuni per la risoluzione dei problemi relativi all'esecuzione delle applicazioni Spark sul notebook EMR:
Controllo delle risorse del cluster
Assicurati che Spark disponga di risorse disponibili sufficienti nel cluster per consentire a Jupyter di creare un contesto Spark. Puoi controllare le risorse disponibili utilizzando i parametri di Amazon CloudWatch o Resource Manager.
Verifica che le librerie Sparkmagic siano configurate correttamente
Contatta il tuo amministratore Jupyter per assicurarti che le librerie Sparkmagic siano configurate correttamente.
Riavvio del kernel del notebook
1. Apri la console EMR e seleziona Notebook.
2. Seleziona il notebook dall'elenco Notebooks (Notebook), quindi scegli Open in JupyterLab (Apri in JupyterLab) o Open in Jupyter (Apri in Jupyter). Una nuova scheda del browser si apre nell'editor JupyterLab o Notebook Jupyter.
3. Dal menu Kernel, seleziona Restart Kernel (Riavvia il kernel).
Aumento del periodo di timeout della sessione Spark per JupyterLab
Per aumentare il periodo di timeout della sessione Spark, procedi come segue:
1. Apri la console EMR e seleziona Notebook.
2. Seleziona il notebook dall'elenco Notebooks (Notebook).
3. Accedi all'interfaccia utente Web Jupyter del notebook EMR.
4. Apri il terminale del notebook EMR.
5. Apri il file config.json usando il seguente comando:
vi /home/notebook/.sparkmagic/config.json
5. Aggiungi o aggiorna l'opzione livy_session_startup_timeout_seconds: xxx nel file config.json.
6. Riavvia tutti i kernel.
Nota: se l'applicazione JupyterHub è installata nell'istanza primaria EMR, procedi come segue per aumentare il periodo di timeout della sessione Spark.
1. Esegui il seguente comando:
vi /etc/jupyter/conf/config.json
2. Aggiorna l'opzione livy_session_startup_timeout_seconds:60 al tuo valore, quindi riavvia il container JupyterHub.
Ottimizzazione della memoria del driver Spark
Ottimizza la memoria del driver Spark utilizzata dall'applicazione notebook Jupyter per controllare l'allocazione delle risorse. Per maggiori informazioni, consulta Come posso modificare la configurazione di Spark in un notebook Amazon EMR?
Verifica che il servizio Apache Livy sia integro
Controllo dello stato del server Livy in esecuzione sull'istanza del nodo primario
1. Usa il seguente comando per verificare lo stato del server Livy:
sudo systemctl status livy-server
2. Usa il seguente comando per riavviare il server Livy se lo stato è inattivo:
sudo systemctl start livy-server
Aumento della memoria del server Livy
Per impostazione predefinita, il client del notebook prova a connettersi al server Livy per 90 secondi. Se il server Livy non risponde entro 90 secondi, il client genera un timeout. Il motivo più comune per cui il server Livy non risponde è la mancanza di risorse sufficienti. Per risolvere questo problema, aumenta la memoria per il server Livy:
1. Connettiti all'istanza del nodo primario tramite SSH.
2. Aggiungi la seguente proprietà al file /etc/livy/conf/livy-env.sh:
export LIVY_SERVER_JAVA_OPTS="-Xmx8g" (option to your value)
3. Riavvia il server Livy per rendere effettive le modifiche.
sudo systemctl stop livy-server sudo systemctl start livy-server
Uso della modalità cluster anziché della modalità client in Livy
Le applicazioni Spark vengono inviate sul notebook in modalità client e il driver Spark viene eseguito come processo secondario del server Livy. L'esecuzione come processo secondario potrebbe causare una mancanza di risorse sul nodo primario. Per evitare che Livy riporti un errore a causa di risorse insufficienti, cambia la modalità di implementazione alla modalità cluster. In modalità cluster, il driver viene eseguito sull'applicazione primaria sui nodi attività e core e non sul nodo primario.
Per utilizzare la modalità cluster, procedi come segue:
1. Connettiti al nodo primario tramite SSH.
2. Aggiungi il seguente parametro al file /etc/livy/conf/livy.conf:
livy.spark.deploy-mode cluster
3. Riavvia il server Livy per rendere effettive le modifiche:
sudo systemctl stop livy-server sudo systemctl start livy-server
Contenuto pertinente
- AWS UFFICIALEAggiornata 2 anni fa
- AWS UFFICIALEAggiornata 3 anni fa
- AWS UFFICIALEAggiornata 2 anni fa
- AWS UFFICIALEAggiornata 2 anni fa