Come posso risolvere gli errori “session '0' not found” e "Error sending http request and maximum retry encountered" in Amazon EMR?

3 minuti di lettura
0

Desidero risolvere gli errori quando eseguo un'applicazione Apache Livy utilizzando un notebook Jupyter in Amazon EMR.

Breve descrizione

Quando esegui un'applicazione Apache Livy utilizzando un notebook Jupyter in Amazon EMR, si verifica uno dei seguenti errori:

  • '404' da xxxxxxxx con payload di errore: "session '0' not found"
  • "The code failed because of a fatal error: Error sending http request and maximum retry encountered."

Questi errori si verificano in genere quando si mantiene attiva la sessione di notebook Jupyter fino al timeout. Per risolvere questi errori, aumenta il valore della proprietà livy.server.session.timeout in /etc/livy/conf/livy.conf nel nodo principale. Quindi, riavvia livy-server.

Risoluzione

È possibile modificare livy.server.session.timeout in un cluster Amazon EMR in esecuzione o quando si avvia un nuovo cluster.

In un cluster in esecuzione

1.    Apri /etc/livy/conf/livy.conf nel nodo principale, quindi modifica il valore di livy.server.session.timeout (il valore predefinito è 1h). Esempio:

sudo vim /etc/livy/conf/livy.conf
livy.server.session.timeout 2h

2.    Esegui i seguenti comandi sul nodo principale per riavviare livy-server:

Supponiamo di utilizzare una delle seguenti versioni di Amazon EMR basate su Amazon Linux 2:

  • Amazon EMR versione 5.30.0 o successiva
  • Amazon EMR serie 6.x

Dovrai eseguire i seguenti comandi:

sudo systemctl stop livy-server
sudo systemctl start livy-server

Se utilizzi Amazon EMR versione 5.29.0 o precedente, esegui i questi comandi:

sudo stop livy-server
sudo start livy-server

Al riavvio di livy-server, il tuo cluster non è disponibile. Per evitare tempi di inattività, configura l'applicazione Livy quando avvii un cluster Amazon EMR.

In un nuovo cluster

Aggiungi un oggetto di configurazione simile al seguente quando avvii un cluster utilizzando Amazon EMR versione 4.6.0 o successiva. Oltre a modificare livy.server.session.timeout, puoi modificare le seguenti proprietà correlate, se lo desideri:

  • livy.server.session.timeout-check: Quando è attivato, Livy interrompe le sessioni inattive che raggiungono la soglia di timeout. L'impostazione predefinita è true.
  • livy.server.yarn.app-lookup-timeout: La durata in cui Livy cerca l'applicazione YARN prima di considerarla persa. L'impostazione predefinita è 60s.
[
    {
        "Classification": "livy-conf",
        "Properties": {
            "livy.server.session.timeout-check": "true",
            "livy.server.session.timeout": "2h",
            "livy.server.yarn.app-lookup-timeout": "120s"
        }
    }
]

Al termine dell'esecuzione del processo, assicurati di chiudere la sessione in Jupyter o Zeppelin. Quando sono aperte troppe sessioni, i nuovi processi non possono essere avviati finché le risorse non sono disponibili.


Informazioni correlate

Apache Livy

Jupyter Notebook su Amazon EMR

AWS UFFICIALE
AWS UFFICIALEAggiornata un anno fa