Configuration et administration de JupyterHub
JupyterHub et ses composants connexes 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 cluster Amazon EMR.
Par exemple, vous pouvez utiliser la commande de l'AWS CLI suivante sur un ordinateur local pour installer Keras, comme 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 dans 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 cluster Amazon EMR. Pour voir un exemple, consultez Exemple : script bash pour ajouter plusieurs utilisateurs.
Administration à l'aide des API REST
Jupyter, JupyterHub et le proxy HTTP pour JupyterHub fournissent des API REST 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 de l'API REST JupyterHub
dans la documentation pour JupyterHub, qui inclut des instructions pour la génération de jetons d'API API de serveur de blocs-notes Jupyter
sur GitHub proxy-http-configurable
sur GitHub
L'exemple suivant illustre l'utilisation de l'API REST pour JupyterHub pour obtenir la liste des utilisateurs. La commande transmet un jeton admin généré précédemment et utilise le port par défaut 9443 pour JupyterHub, en recueillant la sortie vers jq
curl -XGET -s -k https://$HOST:9443/hub/api/users \ -H "Authorization: token $admin_token" | jq .