Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
JupyterHub configuration et administration
JupyterHub et les composants associés s'exécutent dans un conteneur Docker nommé jupyterhub
qui exécute le système d'exploitation Ubuntu. Il existe plusieurs méthodes pour administrer des composants s'exécutant à l'intérieur du conteneur.
Avertissement
Les personnalisations que vous effectuez dans le conteneur peuvent ne pas être conservées si le conteneur redémarre. Nous vous recommandons de créer des scripts ou d'automatiser de quelque manière que ce soit les configurations de conteneur, de sorte que vous puissiez reproduire les personnalisations plus rapidement.
Administration à l'aide de la ligne de commande
Une fois connecté au nœud principal à l'aide de SSH, vous pouvez émettre des commandes en utilisant l'interface de ligne de commande Docker et en spécifiant le conteneur par l'intermédiaire de son nom (jupyterhub
) ou de son ID. Par exemple, sudo docker exec jupyterhub
exécute des commandes reconnues par le système d'exploitation ou par une application exécutée dans le conteneur. Vous pouvez utiliser cette méthode pour ajouter des utilisateurs au système d'exploitation et installer des applications et des bibliothèques supplémentaires au sein du conteneur Docker. Par exemple, l'image de conteneur par défaut inclut Conda pour l'installation de package ; vous pouvez donc exécuter la commande suivante sur la ligne de commande du nœud principal pour installer une application, Keras, dans le conteneur :command
sudo docker exec jupyterhub conda install keras
Administration par soumission d'étapes
Les étapes constituent un moyen de soumettre le travail à un cluster. Vous pouvez soumettre des étapes lors du lancement d'un cluster ou lorsque celui-ci est en cours d'exécution. Les commandes exécutées sur la ligne de commande peuvent être soumises sous forme d'étapes à l'aide de command-runner.jar
. Pour plus d'informations, consultez Utilisation des étapes à l'aide de la CLI et de la console dans le Guide de gestion d'Amazon EMR et Exécuter des commandes et des scripts sur un EMR cluster Amazon.
Par exemple, vous pouvez utiliser la AWS CLI commande suivante sur un ordinateur local pour installer Keras de la même manière que vous l'avez fait à partir de la ligne de commande du nœud principal dans l'exemple précédent :
aws emr add-steps --cluster-id
MyClusterID
--steps Name="Command Runner
",Jar="command-runner.jar",Args="/usr/bin/sudo","/usr/bin/docker","exec","jupyterhub","conda","install","keras"
De plus, vous pouvez créer un script avec une séquence d'étapes, le charger sur Amazon S3, puis utiliser script-runner.jar
pour l'exécuter lors de la création du cluster ou l'ajouter en tant qu'étape. Pour de plus amples informations, veuillez consulter Exécuter des commandes et des scripts sur un EMR cluster Amazon. Pour obtenir un exemple, consultez Exemple : script bash pour ajouter plusieurs utilisateurs.
Administration à l'aide de REST APIs
Jupyter et JupyterHub le proxy HTTP JupyterHub fournissent un REST APIs que vous pouvez utiliser pour envoyer des demandes. Pour envoyer des demandes à JupyterHub, vous devez transmettre un jeton d'API avec la demande. Vous pouvez utiliser la commande curl
à partir de l'interface de ligne de commande du nœud principal pour exécuter des commandes REST. Pour plus d’informations, consultez les ressources suivantes :
Utilisation JupyterHub de l'API REST
dans la documentation de JupyterHub, qui inclut des instructions pour générer des jetons d'API API du serveur Jupyter Notebook activée
GitHub configurable-http-proxy
sur GitHub
L'exemple suivant montre comment utiliser l'API REST JupyterHub pour obtenir une liste d'utilisateurs. La commande transmet un jeton d'administration généré précédemment et utilise le port par défaut, 9443 JupyterHub, pour rediriger la sortie vers jq afin de faciliter
curl -XGET -s -k https://$HOST:9443/hub/api/users \ -H "Authorization: token $admin_token" | jq .