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 :
- Ouvrez /etc/livy/conf/livy.conf sur le nœud primaire actif.
- 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.
- 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