Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Important
Le développement à distance est en version bêta.
Databricks Remote Development vous permet d’accéder à votre espace de travail et d’exécuter de manière interactive des charges de travail sur le calcul Databricks à partir d’IDEs à l’aide d’un tunnel SSH. Il est simple de configurer, d’éliminer la nécessité de la gestion de l’environnement et de sécuriser tout le code et les données au sein de votre espace de travail Databricks.
Spécifications
Pour utiliser le développement à distance, vous devez disposer des options suivantes :
- Databricks CLI version 0.269 ou ultérieure installée sur votre ordinateur local et l’authentification configurées. Consultez Installer.
- Un cluster dédié (mono-utilisateur) exécutant Databricks Runtime 17.0 ou version ultérieure. Consultez la vue d’ensemble du calcul dédié. Par ailleurs :
- Le catalogue Unity doit être activé.
- Si une stratégie de calcul existe, elle ne doit pas interdire l’exécution des travaux.
Configurer la connexion SSH
Tout d’abord, configurez le tunnel SSH à l’aide de la commande de configuration ssh databricks . Remplacez <connection-name> par le nom de la connexion, par exemple my-connection.
databricks ssh setup --name <connection-name>
L’interface CLI vous invite à sélectionner un cluster. Vous pouvez également en spécifier un directement avec --cluster <cluster-id>:
databricks ssh setup --name <connection-name> --cluster <cluster-id>
Note
Pour les utilisateurs IntelliJ, Databricks recommande d’ajouter --auto-start-cluster=false à la commande d’installation et de démarrer le cluster manuellement avant de se connecter. Cela est dû au fait que les ID JetBrains démarrent tous les clusters configurés lors du lancement, ce qui peut entraîner des frais de calcul inattendus.
Se connecter à Databricks
Ensuite, connectez-vous à Databricks à l’aide d’un IDE ou d’un terminal.
Se connecter à l’aide de Visual Studio Code ou du curseur
Pour Visual Studio Code, installez l’extension SSH distante. Le curseur inclut une extension SSH distante par défaut.
Dans le menu principal de l’IDE, cliquez sur Afficher> lapalette de commandes. Sélectionnez Remote-SSH : Paramètres. Vous pouvez également sélectionner Préférences : Ouvrir les paramètres utilisateur (JSON) pour modifier
settings.jsondirectement.Sous Remote.SSH : Extensions par défaut (ou
remote.SSH.defaultExtensionsinsettings.json), ajouterms-Python.Pythonetms-toolsai.jupyter.Si vous modifiez
settings.json:"remote.SSH.defaultExtensions": [ "ms-Python.Python", "ms-toolsai.jupyter" ]Note
Si vous le souhaitez, augmentez la valeur de Remote.SSH : Délai d’expiration de connexion (ou
remote.SSH.connectTimeoutinsettings.json) pour réduire davantage le risque d’erreurs de délai d’expiration. Le délai d’expiration par défaut est 360.Dans la palette de commandes, sélectionnez Remote-SSH : Se connecter à l’hôte.
Dans la liste déroulante, sélectionnez la connexion que vous avez configurée à la première étape. L’IDE continue de se connecter dans une nouvelle fenêtre.
Se connecter à l’aide d’IDE IntelliJ
- Suivez le didacticiel sur le serveur distant pour configurer.
- Dans le nouvel écran de connexion, entrez :
-
Nom d’utilisateur :
root -
Hôte :
<connection-name>
-
Nom d’utilisateur :
Se connecter à l’aide d’un terminal
ssh <connection-name>
Ouvrir des projets
Après la connexion, utilisez Ouvrir le dossier à partir de la palette de commandes et accédez à /Workspace/Users/<your-username>.
Note
Fichiers dans /Workspace, /Volumes et /dbfs persistent entre les redémarrages du cluster. Les fichiers dans /home, /rootet d’autres chemins locaux sont éphémères et perdus lors du redémarrage.
Exécuter le code (Visual Studio Code ou Cursor)
Pour exécuter du code à l’aide du développement à distance, vous devez vous assurer que l’environnement virtuel Databricks est configuré. Cet environnement inclut toutes les bibliothèques DBR intégrées et les bibliothèques spécifiques au calcul.
Exécutez
echo $DATABRICKS_VIRTUAL_ENVdepuis un terminal intégré dans l'IDE.Exemple de sortie :
/local_disk0/.ephemeral_nfs/envs/pythonEnv-xxx/bin/pythonOuvrez la palette de commandes et choisissez Python : sélectionnez Interpréteur. Collez la sortie ci-dessus.
Ouvrez un nouveau terminal et l’environnement virtuel doit être activé automatiquement.
Pour exécuter un notebook Jupyter, vérifiez que l’environnement virtuel est sélectionné comme noyau. Cliquez sur Sélectionner le noyau en haut à droite du bloc-notes.
Les fichiers Python et les blocs-notes Jupyter .ipynb peuvent être exécutés et débogués à l'aide des extensions Python et Jupyter standard.
Gérer les dépendances Python
Les dépendances Python peuvent être gérées globalement au niveau du cluster ou définies pour des projets individuels en utilisant des notebooks.
Bibliothèques de cluster (recommandées)
Installez des dépendances via l’interface utilisateur de l’espace de travail sous Bibliothèques de calcul>. Celles-ci persistent entre les redémarrages de cluster et sont disponibles dans pythonEnv-xxx. Consultez les bibliothèques de cluster.
Configuration de cahier spécifique au projet
Pour les dépendances dans l’étendue du projet, exécutez un notebook contenant %pip install des commandes au début de chaque session :
# Install from pyproject.toml
%pip install .
# Install from a requirements file
%pip install -r requirements.txt
# Install a wheel from Volumes or Workspace
%pip install /Volumes/catalog/schema/volume/your_library.whl
%pip les commandes incluent des garde-fous spécifiques à Databricks et propagent des dépendances aux nœuds d’exécuteur Spark. Cela permet d'utiliser des fonctions définies par l’utilisateur (UDF) avec des dépendances personnalisées.
Pour plus d’exemples, consultez Gérer les bibliothèques avec %pip les commandes.
Vous n’avez pas besoin de réexécuter le notebook si la session se reconnecte dans les 10 minutes. Cela est configurable à l’aide -shutdown-delay de votre configuration SSH.
Note
Plusieurs sessions SSH sur le même cluster partagent un environnement virtuel.
Limites
Databricks Remote Development présente les limitations suivantes :
- Les clusters partagés avec plusieurs utilisateurs et serverless ne sont pas encore pris en charge.
- L’extension Databricks pour Visual Studio Code et le développement à distance ne sont pas encore compatibles et ne doivent pas être utilisées ensemble.
- Les fichiers modifiés en dehors
/Workspace,/Volumeset/dbfssont perdus lors du redémarrage du cluster. - Au maximum 10 connexions SSH sont autorisées par cluster.
- Les sessions inactives peuvent se terminer après une heure.
Différences entre les notebooks Databricks
Il existe des différences dans les ordinateurs portables lors de l’utilisation du développement à distance :
- Les fichiers Python ne définissent pas de globals Databricks (comme
sparkoudbutils). Vous devez les importer explicitement avecfrom databricks.sdk.runtime import spark. - Pour les notebooks ipynb, ces fonctionnalités sont disponibles :
- Databricks globals :
display,displayHTML,dbutils,table,sql,udf,getArgument,sc,sqlContext,spark -
%sqlcommande magic pour exécuter des cellules SQL
- Databricks globals :
Pour utiliser la source Python « notebooks » :
Recherchez
jupyter.interactiveWindow.cellMarker.codeRegexet définissez-le sur :^# COMMAND ----------|^# Databricks notebook source|^(#\\s*%%|#\\s*\\<codecell\\>|#\\s*In\\[\\d*?\\]|#\\s*In\\[ \\])Recherchez
jupyter.interactiveWindow.cellMarker.defaultet définissez-le sur :# COMMAND ----------
Résolution des problèmes
Cette section contient des informations sur la résolution des problèmes courants.
Échec ou expiration de la connexion SSH
- Vérifiez que le cluster s’exécute dans l’interface utilisateur de l’espace de travail.
- Vérifiez que le port sortant 22 est ouvert et autorisé sur votre ordinateur portable, réseau et VPN.
- Augmentez le délai d’expiration SSH. Consultez Se connecter à l’aide de Visual Studio Code ou du curseur.
- Pour les erreurs d’incompatibilité de clé, supprimez
~/.databricks/ssh-tunnel-keyset réexécutezdatabricks ssh setup. - Pour les erreurs « l’identification de l’hôte distant a changé », vérifiez le
~/.ssh/known_hostsfichier et supprimez les entrées associées à votre cluster. - Les sessions SSH peuvent être supprimées après 1 heure et pas plus de 10 connexions SSH peuvent être effectuées sur un seul cluster. Consultez Limitations.
Erreurs d’authentification CLI
- Vérifiez que votre profil CLI Databricks est valide en utilisant
databricks auth login. - Vérifiez que vous disposez
CAN MANAGEd’autorisations sur le cluster.
Mon code ne fonctionne pas
- Vérifiez que vous avez configuré l'environnement virtuel Databricks, consultez Exécuter le code (Visual Studio Code ou Cursor)
- Les notebooks IPYNB et
*.pyles notebooks Databricks ont accès aux variables globales de Databricks, mais pas les fichiers Python*.py. Consultez les différences entre Databricks Notebooks.
Les fichiers disparaissent ou l'environnement se réinitialise après le redémarrage du cluster.
- Les fichiers dans
/Workspace,/Volumeset/dbfspersistent sur les montages après les redémarrages du cluster. Les fichiers dans/home,/rootet d’autres chemins locaux sont éphémères et perdus lors du redémarrage. - Utilisez la gestion des bibliothèques de cluster pour les dépendances persistantes. Automatisez les réinstallations à l’aide de scripts init si nécessaire. Voir Que sont les scripts d'initialisation ?.
Échec de l’installation SSH sur Windows (WSL)
Exécutez databricks ssh setup directement sur Windows, et non dans WSL. L’instance Windows VS Code ne trouve pas les configurations SSH créées côté WSL.
Questions fréquentes (FAQ)
Comment le développement à distance diffère-t-il de Databricks Connect ?
Databricks Connect vous permet d’écrire du code à l’aide d’API Spark et de les exécuter à distance sur le calcul Databricks au lieu de la session Spark locale. L’extension Databricks Visual Studio Code utilise Databricks Connect pour fournir un débogage intégré du code utilisateur sur Databricks.
Le développement à distance vous permet d’accéder à l’espace de travail à partir de votre IDE et de déplacer l’ensemble de votre environnement de développement sur le cluster : Python, noyau et toutes les exécutions s’exécutent sur Databricks avec un accès total aux ressources du cluster.
Comment mon code et mes données sont-ils sécurisés ?
Tout le code s’exécute dans votre VPC cloud Databricks. Aucune donnée ou code ne quitte votre environnement sécurisé. Le trafic SSH est entièrement chiffré.
Quels environnements de développement intégrés (IDE) sont pris en charge ?
Visual Studio Code et cursor sont officiellement pris en charge. N’importe quel IDE avec des fonctionnalités SSH est compatible, mais seuls VS Code et Cursor sont testés.
Toutes les fonctionnalités de notebook Databricks sont-elles disponibles à partir de l’IDE ?
Certaines fonctionnalités telles que display(), dbutilset %sql sont disponibles avec des limitations ou une configuration manuelle. Consultez les différences entre Databricks Notebooks.
Mon cluster démarre-t-il automatiquement quand je me connecte à l’aide du tunnel SSH ?
Oui, mais s’il faut plus de temps pour démarrer le cluster que le délai d’expiration de connexion, la tentative de connexion échoue. Pour éviter cela, augmentez la valeur de Remote.SSH : Connect Timeout depuis la palette de commandes (ou remote.SSH.connectTimeout dans settings.json) afin de réduire davantage la probabilité d'erreurs de timeout.
Comment savoir si mon cluster est en cours d’exécution ?
Accédez à Compute dans l’interface utilisateur de l’espace de travail Databricks et vérifiez l’état du cluster. Le cluster doit indiquer En cours d'exécution pour que la connexion SSH fonctionne.
Comment déconnecter ma session SSH/IDE ?
Vous pouvez déconnecter une session en fermant votre fenêtre IDE, en utilisant l’option Déconnexion dans votre IDE, en fermant votre terminal SSH ou en exécutant la exit commande dans le terminal.
Comment arrêter le cluster et éviter les frais lorsque je ne l'utilise pas ?
Pour arrêter immédiatement, terminez le cluster depuis l’interface utilisateur de l’espace de travail. Accédez à Calcul dans l’interface utilisateur de l’espace de travail Databricks, recherchez votre cluster, puis cliquez sur Arrêter ou arrêter.
Définissez une stratégie de terminaison automatique courte sur votre cluster à partir de l’interface utilisateur de l’espace de travail. Après vous être déconnecté, le serveur SSH attend la shutdown-delay période (par défaut : 10 minutes), puis le délai d’inactivité du cluster s’applique.
Comment gérer les dépendances persistantes ?
Les dépendances installées pendant une session sont perdues après le redémarrage du cluster. Utilisez le stockage persistant (/Workspace/Users/<your-username>) pour les exigences et les scripts d’installation. Utilisez des bibliothèques de cluster ou des scripts init pour l’automatisation.
Quelles méthodes d’authentification sont prises en charge ?
L’authentification utilise l’interface CLI Databricks et votre ~/.databrickscfg fichier de profils. Les clés SSH sont gérées par le développement à distance Databrick.
Puis-je me connecter à des bases de données ou services externes à partir du cluster ?
Oui, tant que la mise en réseau de votre cluster autorise les connexions sortantes et que vous disposez des bibliothèques nécessaires.
Puis-je utiliser des extensions IDE supplémentaires ?
La plupart des extensions fonctionnent quand elles sont installées dans votre session SSH distante, en fonction de votre IDE et de votre cluster. Visual Studio Code par défaut n’installe pas les extensions locales sur les hôtes distants. Vous pouvez les installer manuellement en ouvrant le panneau des extensions et en activant vos extensions locales sur l’hôte distant. Vous pouvez également configurer Visual Studio Code pour toujours installer certaines extensions à distance. Consultez Se connecter à Databricks.
Le développement à distance prend-il en charge Private Link ?
Oui, toutefois, les administrateurs de l’espace de travail doivent autoriser les URL de listes de marché des extensions VS Code et Cursor. Les machines locales des utilisateurs doivent également avoir la possibilité d’accéder à Internet.