Comment résoudre les erreurs « Session '0' not found » (Session '0' introuvable) et « Error sending http request and maximum retry found » (Erreur d'envoi d'une requête http et nombre maximum de tentatives atteint) dans Amazon EMR ?

Lecture de 3 minute(s)
0

Je veux résoudre les erreurs suivantes lorsque j'exécute une application Apache Livy à l'aide d'un bloc-notes Jupyter sur Amazon EMR :

Brève description

Vous recevez l'une des erreurs suivantes lorsque vous exécutez une application Apache Livy à l'aide d'un bloc-notes Jupyter sur Amazon EMR :

  • '404' à partir de xxxxxxxx avec charge utile d'erreur : « session '0' not found » (session '0' introuvable)
  • « The code failed because of a fatal error: Error sending http request and maximum retry encountered. » (Le code a échoué en raison d'une erreur irrécupérable : erreur d'envoi de la demande http et nombre maximum de tentatives atteint.)

Ces erreurs se produisent généralement lorsque vous conservez la session de bloc-notes Jupyter en cours d'exécution. Elles persistent jusqu'à ce que cette session arrive à expiration. Pour résoudre ces erreurs, augmentez la valeur de la propriété livy.server.session.timeout dans /etc/livy/conf/livy.conf sur le nœud principal. Puis, redémarrez livy-server.

Résolution

Vous pouvez modifier livy.server.session.timeout sur un cluster Amazon EMR en cours d'exécution ou lors du lancement d'un nouveau cluster.

Sur un cluster en cours d'exécution

1.    Ouvrez /etc/livy/conf/livy.conf sur le nœud maître, puis modifiez la valeur livy.server.session.timeout (la valeur par défaut est 1h). Exemple :

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

2.    Exécutez les commandes suivantes sur le nœud principal pour redémarrer livy-server :

Supposons que vous utilisiez l'une des versions suivantes d'Amazon EMR, basée sur Amazon Linux 2 :

  • Amazon EMR version 5.30.0 ou ultérieure.
  • Amazon EMR 6.x series

Ensuite, exécutez les commandes suivantes :

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

Si vous utilisez la version 5.29.0 ou antérieure d'Amazon EMR, exécutez les commandes suivantes :

sudo stop livy-server
sudo start livy-server

Lorsque livy-server redémarre, votre cluster n'est pas disponible. Pour éviter les temps d'arrêt, configurez l'application Livy lorsque vous lancez un cluster Amazon EMR.

Sur un nouveau cluster

Ajoutez un objet de configurationsimilaire à celui ci-dessous lorsque vous lancez un cluster à l'aide d'Amazon EMR versions 4.6.0 et ultérieures. En plus de modifier livy.server.session.timeout, vous pouvez modifier les propriétés connexes suivantes, si vous le souhaitez :

  • livy.server.session.timeout-check : lorsqu'elle est activée, Livy arrête les sessions inactives qui atteignent le seuil d'expiration. Le paramètre par défaut est true.
  • livy.server.yarn.app-lookup timeout : durée pendant laquelle Livy recherche l'application YARN avant de la considérer comme perdue. Le paramètre par défaut est 60 secondes.
[
    {
        "Classification": "livy-conf",
        "Properties": {
            "livy.server.session.timeout-check": "true",
            "livy.server.session.timeout": "2h",
            "livy.server.yarn.app-lookup-timeout": "120s"
        }
    }
]

Après avoir terminé la tâche, veillez à fermer la session dans Jupyter ou Zeppelin. Lorsque trop de sessions sont ouvertes, les nouvelles tâches ne peuvent pas démarrer tant que les ressources ne sont pas disponibles.


Informations connexes

Apache Livy

Bloc-notes Jupyter sur Amazon EMR

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a un an