Comment résoudre les erreurs « session '0' not found » (session '0' introuvable) et « Error sending http request and maximum retry encountered » (Erreur lors de l'envoi de la requête http et nombre maximal de nouvelles tentatives rencontrées) dans Amazon EMR ?

Lecture de 3 minute(s)
0

Je souhaite résoudre les erreurs que je reçois concernant l'utilisation d'un Jupyter notebook pour exécuter une application Apache Livy sur Amazon EMR.

Résolution

L'une des erreurs suivantes peut s'afficher lorsque vous utilisez un Jupyter notebook pour exécuter une application Apache Livy sur Amazon EMR :

  • '404' from ######## with error payload: "session '0' not found ('404' de ######## avec données utiles de l’erreur : « 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 fatale : Erreur lors de l'envoi de la requête HTTP et nouvelle tentative maximale rencontrée)

Les erreurs précédentes s'affichent lorsque vous exécutez votre session Jupyter Notebook jusqu'à son 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 primaire. Puis, redémarrez livy-server.

Vous pouvez modifier la propriété livy.server.session.timeout sur un cluster Amazon EMR en cours d'exécution ou lorsque vous lancez un nouveau cluster.

Modifier livy.server.session.timeout sur un cluster en cours d'exécution

Procédez comme suit :

  1. Ouvrez /etc/livy/conf/livy.conf sur le nœud primaire actif.
  2. Modifiez la valeur de livy.server.session.timeout :
    sudo vim /etc/livy/conf/livy.conflivy.server.session.timeout 2h
    Remarque : Remplacez 2h par la valeur qui correspond à vos besoins. La valeur par défaut est de 1 heure.
  3. Pour redémarrer livy-server, exécutez l'une des commandes suivantes qui correspond à vos besoins de version sur le nœud primaire actif.
    Pour Amazon EMR version 5.30.0 ou ultérieure, Amazon EMR série 6 et Amazon EMR série 7 sur Amazon Linux 2, exécutez la commande suivante :
    sudo systemctl stop livy-server
    sudo systemctl start livy-server
    Pour la version 5.29.0 ou antérieure d'Amazon EMR, exécutez la commande suivante :
    sudo stop livy-server
    sudo start livy-server

Remarque : Lorsque votre livy-server redémarre, vous ne pouvez pas accéder à votre cluster. Pour éviter la durée d’indisponibilité, configurez l'application Apache Livy lorsque vous lancez un cluster Amazon EMR.

Modifier livy.server.session.timeout sur un nouveau cluster

Ajoutez un objet de configuration lorsque vous utilisez Amazon EMR version 4.6.0 ou ultérieure pour lancer un cluster.

Exemple :

[
    {
        "Classification": "livy-conf",
        "Properties": {
            "livy.server.session.timeout-check": "true",
            "livy.server.session.timeout": "2h",
            "livy.server.yarn.app-lookup-timeout": "120s"
        }
    }
]

Vous pouvez également modifier les propriétés associées suivantes :

  • Lorsque vous activez la propriété livy.server.session.timeout-check, Apache Livy arrête les sessions inactives qui atteignent le seuil de délai d’expiration. Le paramètre par défaut est vrai.
  • La propriété livy.server.yarn.app-lookup-timeout correspond à la durée pendant laquelle Apache Livy recherche l'application YARN avant que l'application ne la considère comme perdue. Le réglage par défaut est de 60 s.

Après avoir exécuté la tâche, assurez-vous de fermer la session dans Jupyter ou Zeppelin. Lorsqu’un trop grand nombre 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

Jupyter Notebook sur Amazon EMR

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 24 jours