Utilisation de JupyterHub dans le service de mégadonnées 3.0.27 ou version ultérieure
Utilisez JupyterHub pour gérer les blocs-notes ODH 2.x du service de mégadonnées version 3.0.27 ou ultérieure pour les groupes d'utilisateurs.
Préalables
Accès à JupyterHub
- Accédez à Apache Ambari.
- Dans la barre d'outils latérale, sous Services, sélectionnez JupyterHub.
Gérer JupyterHub
Un utilisateur JupyterHub admin peut effectuer les tâches suivantes pour gérer les carnets dans JupyterHub sur les noeuds ODH 2.x du service de mégadonnées 3.0.27 ou ultérieurs.
Pour gérer les services Oracle Linux 7 à l'aide de la commande systemctl, voir Utilisation de services de système.
Pour vous connecter à une instance Oracle Cloud Infrastructure, voir Connexion à votre instance.
En tant qu'administrateur, vous pouvez arrêter ou désactiver JupyterHub pour ne pas consommer de ressources, telles que la mémoire. Le redémarrage peut également aider à rectifier des problèmes inattendus ou un comportement.
Arrêtez ou démarrez JupyterHub au moyen d'Ambari pour les grappes du service de mégadonnées version 3.0.27 ou ultérieure.
En tant qu'administrateur, vous pouvez ajouter le serveur JupyterHub à un noeud du service de mégadonnées.
Cette option est disponible pour les grappes du service de mégadonnées version 3.0.27 ou ultérieure.
- Accédez à Apache Ambari.
- Dans la barre d'outils latérale, sélectionnez Hôtes.
- Pour ajouter le serveur JupyterHub, sélectionnez un hôte où JupyterHub n'est pas installé.
- Sélectionnez Ajouter.
- Sélectionnez JupyterHub Server.
En tant qu'administrateur, vous pouvez déplacer le serveur JupyterHub vers un autre noeud du service de mégadonnées.
Cette option est disponible pour les grappes du service de mégadonnées version 3.0.27 ou ultérieure.
- Accédez à Apache Ambari.
- Dans la barre d'outils latérale, sous Services, sélectionnez JupyterHub.
- Sélectionnez Actions, puis Déplacer le serveur JupyterHub.
- Sélectionnez Suivant.
- Sélectionnez l'hôte vers lequel déplacer le serveur JupyterHub.
- Terminez l'assistant de déplacement.
En tant qu'administrateur, vous pouvez exécuter des vérifications d'état/de service JupyterHub au moyen d'Ambari.
Cette option est disponible pour les grappes du service de mégadonnées version 3.0.27 ou ultérieure.
- Accédez à Apache Ambari.
- Dans la barre d'outils latérale, sous Services, sélectionnez JupyterHub.
- Sélectionnez Actions, puis Exécuter la vérification du service.
Gérer les utilisateurs et les autorisations
Utilisez l'une des deux méthodes d'authentification pour authentifier les utilisateurs dans JupyterHub afin qu'ils puissent créer des carnets et, éventuellement, administrer JupyterHub sur les grappes ODH 2.x du service de mégadonnées 3.0.27 ou ultérieures.
Les utilisateurs JupyterHub doivent être ajoutés en tant qu'utilisateurs du système d'exploitation sur tous les noeuds de la grappe du service de mégadonnées pour les grappes du service de mégadonnées non Active Directory (AD), où les utilisateurs ne sont pas synchronisés automatiquement sur tous les noeuds de la grappe. Les administrateurs peuvent utiliser le script de gestion des utilisateurs JupyterHub pour ajouter des utilisateurs et des groupes avant de se connecter à JupyterHub.
Conditions requises :
Effectuez les opérations suivantes avant d'accéder à JupyterHub :
- Connectez-vous SSH au noeud où JupyterHub est installé.
- Accédez à
/usr/odh/current/jupyterhub/install. - Pour fournir les détails de tous les utilisateurs et groupes dans le fichier
sample_user_groups.json, exécutez :sudo python3 UserGroupManager.py sample_user_groups.json Verify user creation by executing the following command: id <any-user-name>
Types d'authentification pris en charge
- NativeAuthenticator : Cet authentificateur est utilisé pour les applications JupyterHub de petite ou moyenne taille. L'inscription et l'authentification sont mises en oeuvre en tant que version native de JupyterHub sans avoir recours à des services externes.
-
SSOAuthenticator : Cet authentificateur fournit une sous-classe de
jupyterhub.auth.Authenticatorqui agit en tant que fournisseur de services SAML2. Dirigez-le vers un fournisseur d'identités SAML2 configuré correctement et active l'authentification unique pour JupyterHub.
L'authentification native dépend de la base de données d'utilisateurs JupyterHub pour l'authentification des utilisateurs.
L'authentification native s'applique aux grappes qui sont hautement disponibles et à celles qui ne le sont pas. Reportez-vous à NativeAuthenticator pour plus de détails sur l'authentificateur natif.
Ces préalables doivent être satisfaits pour autoriser un utilisateur dans une grappe hautement disponible pour le service de mégadonnées à l'aide de l'authentification native.
Ces préalables doivent être satisfaits pour autoriser un utilisateur dans une grappe non hautement disponible du service de mégadonnées à l'aide de l'authentification native.
Les administrateurs sont responsables de la configuration et de la gestion de JupyterHub. Les administrateurs sont également responsables de l'autorisation des utilisateurs qui viennent de s'inscrire à JupyterHub.
Avant l'ajout d'un utilisateur administrateur, les conditions requises doivent être remplies pour une grappe non hautement disponible.
- Accédez à Apache Ambari.
- Dans la barre d'outils latérale, sous Services, sélectionnez JupyterHub.
- Sélectionnez Configs, puis Advanced Configs.
- Sélectionnez Advanced jupyterhub-config.
-
Ajoutez l'utilisateur administrateur à
c.Authenticator.admin_users. - Sélectionnez enregistrer.
Avant d'ajouter d'autres utilisateurs, les conditions requises doivent être remplies pour une grappe du service de mégadonnées.
Un administrateur peut supprimer des utilisateurs JupyterHub.
- Accédez JupyterHub.
- Ouvrez File (Fichier) > HubControlPanel.
- Naviguez jusqu'à la page Authorize Users (Autoriser des utilisateurs).
- Supprimez les utilisateurs voulus.
Vous pouvez utiliser l'authentification LDAP au moyen d'Ambari pour les clusters Big Data Service 3.0.27 ou ultérieurs ODH 2.x.
Utilisation de l'authentification LDAP à l'aide d'Ambari
Pour utiliser l'authentification LDAP, vous devez mettre à jour le fichier de configuration JupyterHub avec les informations de connexion à LDAP.
Utilisez Ambari pour l'authentification LDAP sur les grappes du service de mégadonnées version 3.0.27 ou ultérieure.
Reportez-vous à Authentificateur LDAP pour plus de détails sur l'authentificateur LDAP.
pConfigure Authentification unique dans le service de mégadonnées 3.0.27 ou version ultérieure du service ODH 2.x JupyterHub.
Vous pouvez utiliser le domaine d'identité Oracle pour configurer l'authentification unique dans les grappes ODH 2.x JupyterHub du service de mégadonnées 3.0.27 ou ultérieures.
Vous pouvez utiliser OKTA pour configurer l'authentification unique dans les grappes ODH 2.x JupyterHub du service de mégadonnées 3.0.27 ou ultérieures.
En tant qu'administrateur, vous pouvez gérer les configurations JupyterHub au moyen des grappes Ambari pour le service de mégadonnées 3.0.27 ou ultérieures ODH 2.x.
Génération de carnets
Les configurations Spawner suivantes sont prises en charge sur les grappes du service de mégadonnées 3.0.27 et ultérieures ODH 2.x.
Entrez les informations suivantes :
- Authentification native :
- Se connecter à l'aide des données d'identification de l'utilisateur connecté
- Entrer l'utilisateur.
- Entrer le mot de passe.
- À l'aide de SamlSSOAuthenticator :
- Connectez-vous avec l'authentification unique.
- Connectez-vous avec l'application d'authentification unique configurée.
Générer des carnets sur une grappe hautement disponible
Pour la grappe intégrée AD :
- Connectez-vous à l'aide de l'une des méthodes précédentes. L'autorisation ne fonctionne que si l'utilisateur est présent sur l'hôte Linux. JupyterHub recherche l'utilisateur sur l'hôte Linux lors de la tentative de génération du serveur de carnets.
- Vous êtes dirigé vers une page Options de serveur où vous devez demander un ticket Kerberos. Ce ticket peut être demandé à l'aide du principal Kerberos et du fichier keytab, ou du mot de passe Kerberos. L'administrateur de la grappe peut fournir le principal Kerberos et le fichier keytab, ou le mot de passe Kerberos. Le ticket Kerberos est nécessaire pour accéder aux répertoires HDFS et aux autres services de mégadonnées que vous voulez utiliser.
Génération de carnets sur une grappe qui n'est pas hautement disponible
Pour la grappe intégrée AD :
Connectez-vous à l'aide de l'une des méthodes précédentes. L'autorisation ne fonctionne que si l'utilisateur est présent sur l'hôte Linux. JupyterHub recherche l'utilisateur sur l'hôte Linux lors de la tentative de génération du serveur de carnets.
- Configurez des clés SSH/des jetons d'accès pour le noeud de grappe du service de mégadonnées.
- Sélectionnez le mode de persistance du carnet Git.
Pour configurer la connexion Git pour JupyterHub, procédez comme suit :
- Jetons d'accès pour le noeud de grappe du service de mégadonnées.
- Sélectionner le mode de persistance du carnet en tant que Git
Génération d'une paire de clés SSH
Utilisation de jetons d'accès
Vous pouvez utiliser des jetons d'accès comme suit :
- GitHub:
- Connectez-vous à votre compte GitHub.
- Naviguez jusqu'à Paramètres > Paramètres du développeur > Jetons d'accès personnel.
- Générez un nouveau jeton d'accès avec les autorisations appropriées.
- Utilisez le jeton d'accès comme mot de passe lorsque vous êtes invité à vous authentifier.
- GitLab:
- Connectez-vous à votre compte GitHub.
- Naviguez jusqu'à Paramètres > Jetons d'accès.
- Générez un nouveau jeton d'accès avec les autorisations appropriées.
- Utilisez le jeton d'accès comme mot de passe lorsque vous êtes invité à vous authentifier.
- BitBucket:
- Connectez-vous à votre compte BitBucket.
- Naviguez jusqu'à Paramètres > Mots de passe d'application.
- Générez un nouveau jeton de mot de passe d'application avec les autorisations appropriées.
- Utilisez le nouveau mot de passe de l'application comme mot de passe lorsque vous êtes invité à vous authentifier.
Sélectionner le mode de persistance comme Git
- Accédez à Apache Ambari.
- Dans la barre d'outils latérale, sous Services, sélectionnez JupyterHub.
- Sélectionnez Configs, puis Settings (Paramètres).
- Recherchez le mode de persistance du carnet, puis sélectionnez Git dans la liste déroulante.
- Sélectionnez Actions, puis Tout redémarrer.
- Accédez à Apache Ambari.
- Dans la barre d'outils latérale, sous Services, sélectionnez JupyterHub.
- Sélectionnez Configs, puis Settings (Paramètres).
- Recherchez le mode de persistance du carnet, puis sélectionnez HDFS dans la liste déroulante.
- Sélectionnez Actions, puis Tout redémarrer.
En tant qu'utilisateur administrateur, vous pouvez stocker les carnets d'utilisateurs individuels dans le stockage d'objets au lieu de HDFS. Lorsque vous faites passer le gestionnaire de contenu de HDFS au stockage d'objets, les blocs-notes existants ne sont pas copiés vers le stockage d'objets. Les nouveaux carnets sont enregistrés dans le stockage d'objets.
Montage du seau de stockage d'objets Oracle à l'aide de rclone avec l'authentification de principal d'utilisateur
Vous pouvez monter le service Oracle Object Storage à l'aide de rclone avec l'authentification de principal d'utilisateur (clés d'API) sur un noeud de grappe du service de mégadonnées à l'aide de rclone et de fuse3, personnalisés pour les utilisateurs JupyterHub.
Gérer les environnements Conda dans JupyterHub
Vous pouvez gérer les environnements Conda sur les grappes ODH 2.x du service de mégadonnées version 3.0.28 ou ultérieure.
- Créez un environnement Conda avec des dépendances spécifiques et créez quatre noyaux (Python/PySpark/Spark/SparkR) qui pointent vers l'environnement Conda créé.
- Les environnements Conda et les noyaux créés à l'aide de cette opération sont disponibles pour tous les utilisateurs du serveur de carnet.
- Une opération d'environnement Conda de création distincte consiste à découpler l'opération avec le redémarrage du service.
- JupyterHub est installé au moyen de l'interface utilisateur d'Ambari.
- Vérifiez l'accès Internet à la grappe pour télécharger les dépendances lors de la création de l'environnement Conda.
- Les environnements Conda et les noyaux créés à l'aide de cette opération sont disponibles pour tous les utilisateurs du serveur de carnet."
- Fournir :
- Configurations supplémentaires Conda pour éviter l'échec de la création Conda. Pour plus d'informations, voir conda create.
- Dépendances dans le format standard Requirements
.txt. - Nom d'environnement Conda inexistant.
- Supprimez manuellement les environnements Conda ou les noyaux.
Cette opération crée un environnement Conda avec des dépendances spécifiées et crée le noyau spécifié (Python/PySpark/Spark/SparkR) pointant vers l'environnement Conda créé.
- Si l'environnement Conda spécifié existe déjà, l'opération passe directement à l'étape de création du noyau
- Les environnements Conda ou les noyaux créés à l'aide de cette opération sont disponibles uniquement pour un utilisateur spécifique
- Exécutez manuellement le script python
kernel_install_script.pyen mode sudo :'/var/lib/ambari-server/resources/mpacks/odh-ambari-mpack-2.0.8/stacks/ODH/1.1.12/services/JUPYTER/package/scripts/'Exemple :
sudo python kernel_install_script.py --conda_env_name conda_jupy_env_1 --conda_additional_configs '--override-channels --no-default-packages --no-pin -c pytorch' --custom_requirements_txt_file_path ./req.txt --kernel_type spark --kernel_name spark_jupyterhub_1 --user jupyterhub
Préalables
- Vérifiez l'accès Internet à la grappe pour télécharger les dépendances lors de la création de l'environnement Conda. Sinon, la création échoue.
- Si un noyau portant le nom
--kernel_nameexiste, une exception est générée. - Entrez les éléments suivants :
- Configurations Conda pour éviter l'échec de la création. Pour plus de renseignements, consultez la page https://conda.io/projects/conda/en/latest/commands/create.html.
- Dépendances fournies dans le format
.txtdes exigences standard.
- Supprimez manuellement les environnements Conda ou les noyaux pour tout utilisateur.
Configurations disponibles pour la personnalisation
-
--user(obligatoire) : OS et utilisateur JupyterHub pour lesquels le noyau et l'environnement Conda sont créés. -
--conda_env_name(obligatoire) : Fournissez un nom unique pour l'environnement Conda chaque fois qu'une nouvelle application est créée pour--user. -
--kernel_name: (Obligatoire) Indiquez un nom de noyau unique. -
--kernel_type: (obligatoire) Doit être l'un des suivants (python / PysPark / Spark / SparkR) -
--custom_requirements_txt_file_path: (facultatif) Si des dépendances Python/R/Ruby/Lua/Scala/Java/JavaScript/C/C++/FORTRAN sont installées à l'aide de canaux Conda, vous devez spécifier ces bibliothèques dans un fichier.txtd'exigences et fournir le chemin complet.Pour plus d'informations sur un format standard permettant de définir le fichier
.txtdes exigences, voir https://pip.pypa.io/en/stable/reference/requirements-file-format/. -
--conda_additional_configs: (Facultatif)- Ce champ fournit des paramètres supplémentaires à ajouter à la commande de création Conda par défaut.
- La commande de création Conda par défaut est :
'conda create -y -p conda_env_full_path -c conda-forge pip python=3.8'. - Si
--conda_additional_configsest indiqué en tant que'--override-channels --no-default-packages --no-pin -c pytorch', l'exécution de la commande de création Conda finale est'conda create -y -p conda_env_full_path -c conda-forge pip python=3.8 --override-channels --no-default-packages --no-pin -c pytorch'.
Configuration de l'environnement Conda propre à l'utilisateur
Créer un équilibreur de charge et un jeu dorsal
Pour plus d'informations sur la création de jeux dorsaux, voir Création d'un jeu dorsal d'équilibreur de charge.
Pour plus d'informations sur la création d'un équilibreur de charge public, voir Création d'un équilibreur de charge et entrez les détails suivants.
Pour plus d'informations sur la création d'un équilibreur de charge public, voir Création d'un équilibreur de charge et entrez les détails suivants.
- ouvrez le menu de navigation, sélectionnez Service de réseau, puis Équilibreur de charge. Sélectionner un équilibreur de charge. La page Équilibreurs de charge s'affiche.
- Sélectionnez le compartiment dans la liste. Tous les équilibreurs de charge de ce compartiment sont présentés sous forme de tableau.
- Sélectionnez l'équilibreur de charge auquel vous voulez ajouter un serveur dorsal. La page des détails de l'équilibreur de charge s'affiche.
- Sélectionnez Jeux dorsaux, puis sélectionnez le jeu dorsal que vous avez créé lors de la création de l'équilibreur de charge.
- Sélectionnez des adresses IP, puis entrez l'adresse IP privée requise de la grappe.
- Entrez 8000 pour le port.
- Sélectionnez Ajouter.
Pour plus d'informations sur la création d'un équilibreur de charge public, voir Création d'un équilibreur de charge et entrez les détails suivants.
-
Ouvrez un navigateur et entrez
https://<loadbalancer ip>:8000. - Sélectionnez le compartiment dans la liste. Tous les équilibreurs de charge de ce compartiment sont présentés sous forme de tableau.
- Assurez-vous qu'il redirige vers l'un des serveurs JupyterHub. Pour vérifier, ouvrez une session de terminal sur JupyterHub pour trouver le noeud qui a été atteint.
- Après l'opération d'ajout de noeud, l'administrateur de la grappe doit mettre à jour manuellement l'entrée d'hôte de l'équilibreur de charge dans les noeuds nouvellement ajoutés. Applicable à tous les ajouts de noeuds à la grappe. Par exemple, un noeud de travail, un noeud de calcul uniquement et un noeud.
- Le certificat doit être mis à jour manuellement vers l'équilibreur de charge en cas d'expiration. Cette étape garantit que l'équilibreur de charge n'utilise pas de certificats périmés et évite les échecs de vérification de l'état ou de communication des jeux dorsaux. Pour plus d'informations, voir Mise à jour d'un certificat d'équilibreur de charge arrivant à expiration pour mettre à jour un certificat expiré.
Lancer les noyaux Trino-SQL
Le noyau JupyterHub PyTrino fournit une interface SQL qui vous permet d'exécuter des interrogations Trino à l'aide de JupyterHub SQL. Disponible pour les grappes ODH 2.x du service de mégadonnées version 3.0.28 ou ultérieure.
Pour plus d'informations sur les paramètres SqlMagic, voir https://jupysql.ploomber.io/en/latest/api/configuration.html#changing-configuration.