Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Это важно
Эта функция доступна в бета-версии.
SSH-туннель, предоставляемый Databricks, позволяет получать доступ к рабочей области и интерактивно запускать рабочие нагрузки на вычислительных ресурсах Databricks из IDE с помощью SSH-туннеля. Легко настроить, устранить необходимость управления средой и обеспечить безопасность всего кода и данных в рабочей области Databricks.
Требования
Чтобы использовать туннель SSH для подключения к бессерверным или классическим вычислениям Databricks, необходимо:
- Databricks CLI версии 1.5.0 или выше, установленный на локальном компьютере, с настроенной аутентификацией. См. установите или обновите CLI Databricks.
- Одна из следующих:
- Visual Studio Code версии 1.110.0 (Universal) или выше, а также установленное расширение Remote - SSH (1.0.46+).
- Версия курсора: 2.6.11 (универсальная) или более поздней.
Чтобы подключиться к бессерверным вычислениям GPU, необходимо включить функцию среды выполнения ИИ. См. раздел "Среда выполнения ИИ".
Чтобы подключиться к классическим (выделенным, однопользовательским) вычислениям:
- Вычислительные ресурсы должны работать под управлением Databricks Runtime 17.0 или более поздней версии. См. обзор выделенных вычислительных ресурсов.
- Каталог Unity должен быть включен.
- Если политика вычислений существует, она не должна запрещать выполнение заданий.
- При использовании служб контейнеров Databricks для выделенных вычислений в вашем образе Docker должен быть установлен
openssh-server.
Подключение к бессерверным вычислениям
Чтобы подключиться к бессерверным вычислениям, выполните databricks ssh connect команду из терминала в интегрированной среде разработки. Отдельный шаг установки не требуется.
Дополнительные сведения о команде databricks ssh connect см. в группе команд ssh.
databricks ssh connect
Используйте параметр --accelerator для подключения к среде выполнения ИИ:
databricks ssh connect --accelerator=GPU_1xA10
databricks ssh connect предоставляет интерактивный сеанс на одном узле. Для длительно выполняющихся задач обучения или многоузлового распределенного обучения отправьте задачу через air CLI вместо этого. См. интерфейс командной строки среды выполнения ИИ.
После подключения завершите настройку среды разработки. См. статью "Открытые проекты".
Чтобы подключиться к бессерверным вычислениям и запустить сеанс в Visual Studio Code или курсоре, используйте этот --ide параметр. Интерфейс командной строки открывает окно интегрированной среды разработки, указывающее на папку домашней рабочей области.
databricks ssh connect --ide=vscode
Подключение к классическим вычислениям
Чтобы подключиться к классическим вычислениям, сначала настройте подключение SSH, а затем подключитесь с помощью интегрированной среды разработки или терминала.
Настройка подключения SSH
Замечание
Настройка подключения SSH требуется только при подключении к классическим вычислениям.
Сначала настройте туннель SSH с помощью команды databricks ssh setup. Укажите имя подключения, например, замените <connection-name> на my-connection:
databricks ssh setup --name <connection-name>
Интерфейс командной строки предложит выбрать кластер. Вы также можете указать один напрямую с помощью --cluster <cluster-id>:
databricks ssh setup --name <connection-name> --cluster <cluster-id>
Замечание
Для пользователей IntelliJ Databricks рекомендует добавлять --auto-start-cluster=false в команду установки и запускать кластер вручную перед подключением. Это связано с тем, что среды idEs JetBrains запускают все настроенные кластеры при запуске, что может привести к непредвиденным затратам на вычисления.
Подключение с помощью Visual Studio Code или Курсора
Для Visual Studio Code установите расширение Remote SSH. Курсор включает удаленное расширение SSH по умолчанию.
В главном меню интегрированной среды разработки щелкните "View">Палитра команд. Выберите Remote-SSH: Параметры. Кроме того, выберите Параметры: Откройте параметры пользователя (JSON), чтобы изменить их напрямую.
В разделе Remote.SSH: расширения по умолчанию (или
remote.SSH.defaultExtensionsвsettings.json), добавьтеms-Python.Pythonиms-toolsai.jupyter.При изменении
settings.json:"remote.SSH.defaultExtensions": [ "ms-Python.Python", "ms-toolsai.jupyter" ]Замечание
При необходимости увеличьте значение Remote.SSH: время ожидания подключения (или
remote.SSH.connectTimeoutвsettings.json), чтобы уменьшить вероятность ошибок времени ожидания. Время ожидания по умолчанию — 360.В палитре команд выберите Remote-SSH: Подключиться к узлу.
В раскрывающемся меню выберите подключение, настроенное на первом шаге. IDE подключается в новом окне.
Подключение с использованием IntelliJ IDEs
- Следуйте инструкциям по настройке удаленного сервера .
- На новом экране подключения введите следующее:
-
Имя пользователя:
root -
Хост:
<connection-name>
-
Имя пользователя:
Подключение с помощью терминала
ssh <connection-name>
Открытие проектов
По умолчанию databricks ssh connect команда открывается в эфемерном каталоге. Чтобы получить доступ к файлам рабочей области, перейдите в каталог рабочей области из интегрированной среды разработки или терминала:
- В Visual Studio Code или Cursor в палитре команд (Cmd/Ctrl+Shift+P) выберите Open Folder и перейдите в
/Workspace/Users/<your-username>. - В окне терминала измените каталог:
cd /Workspace/Users/<your-username>
Замечание
Файлы в /Workspace, /Volumesа также /dbfs сохраняются во всех перезапусках кластера. Файлы в /home, /rootа также другие локальные пути являются временными и потеряны при перезапуске.
Запустить код (Visual Studio Code или Cursor)
Чтобы запустить код с помощью туннеля SSH, необходимо настроить виртуальную среду Databricks. Эта среда включает все встроенные библиотеки DBR и библиотеки, ограниченные областью вычислений.
Откройте палитру команд (CMD/CTRL+SHIFT+P) и выберите Python: Выберите интерпретатор.
Выберите виртуальную
pythonEnv-xxxсреду из списка. Если вы настроили Python зависимости с помощью флага--base-environment, выберите более длинное имя виртуальной среды из списка параметров. Если виртуальная среда не отображается:Запустите
echo $DATABRICKS_VIRTUAL_ENVиз терминала в интегрированной среде разработки.Пример выходных данных:
/local_disk0/.ephemeral_nfs/envs/pythonEnv-xxx/bin/pythonВставьте полный вывод в качестве пути к интерпретатору в запросе Python: Выбрать интерпретатор.
Откройте новый терминал, и виртуальная среда должна автоматически активироваться.
Чтобы запустить ноутбук Jupyter, убедитесь, что виртуальная среда установлена как ядро. Щелкните "Выбрать ядро" в правом верхнем углу записной книжки.
Запуск и отладка Python файлов и .ipynb записных книжек с помощью стандартных расширений Python и Jupyter.
Чтобы использовать Spark в файле Python на бессерверных вычислениях, инициализировать сеанс явным образом:
from databricks.connect import DatabricksSession
spark = DatabricksSession.builder.serverless().profile("DEFAULT").getOrCreate()
Управление зависимостями
Управление зависимостями с помощью базовой среды рабочей области, библиотек кластера, скриптов и записных книжек в зависимости от типа вычислений и требований.
Базовые среды рабочей области (рекомендуется для бессерверной среды выполнения ИИ)
Замечание
Эта функция требует включения поддержки базовой среды бессерверных рабочих областей в предварительной версии заданий. См. статью "Управление предварительными версиями Azure Databricks".
Используйте базовую среду рабочей области с бессерверной средой версии 4 или ниже для предварительной настройки зависимостей Python. Создайте базовую среду с помощью пользовательского интерфейса рабочей области или команды Databricks CLI databricks create-workspace-base-environment .
Укажите среду с помощью --base-environment параметра при подключении:
databricks ssh connect --base-environment my-workspace-env
Дополнительные сведения о принятых форматах см. в разделе databricks ssh connect.
Библиотеки кластеров (рекомендуется для классических вычислений)
Установите зависимости с помощью интерфейса рабочей области в разделе Compute > Libraries. Они сохраняются при всех перезапусках кластера и доступны в pythonEnv-xxx. См. библиотеки кластера.
Зависимости, отличные от Python
Чтобы сохранить зависимости, отличные от Python, используйте скрипт инициализации, который устанавливает пакеты при запуске вычислений. При необходимости сохраните пакеты в томе Unity Catalog и укажите их в скрипте инициализации. См. статью "Что такое скрипты инициализации?".
Настройка записной книжки для Project
Для зависимостей в области проекта запустите записную книжку, содержащую %pip install команды в начале каждого сеанса:
# 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 команды включают в себя сторожевые ограничения, относящиеся к Databricks, и распространение зависимостей на узлы исполнителя Spark. Это позволяет определяемым пользователем функциям с пользовательскими зависимостями.
Дополнительные примеры см. в разделе "Управление библиотеками с помощью %pip команд".
Не нужно повторно запускать записную книжку, если сеанс повторно подключается в течение 10 минут. Это можно настроить в конфигурации SSH с помощью -shutdown-delay.
Замечание
Несколько сеансов SSH в одном кластере используют одну виртуальную среду.
С помощью Git
Замечание
Для этой функции требуется включить поддержку интерфейса командной строки Git для предварительной версии папок Git . См. статью "Управление предварительными версиями Azure Databricks".
Вы можете использовать интерфейс командной строки Git в туннеле SSH с только что созданными папками Git и учетными данными Git, настроенными в рабочей области Databricks. См. статью "Использование команд командной строки Git".
Если интерфейс командной строки запрашивает учетные данные вместо автоматического их выбора, необходимо подключить поставщика Git к Databricks. См. статью "Подключение поставщика Git к Databricks".
Ограничения
Туннель SSH, предоставляемый Databricks, имеет следующие ограничения:
- Общие кластеры не поддерживаются.
- Расширение Databricks для Visual Studio Code и туннель SSH еще не совместимы и не следует использовать вместе.
- Файлы, редактируемые за пределами
/Workspace,/Volumesи/dbfsтеряются при перезапуске кластера. - Для каждого кластера разрешено не более 10 подключений SSH.
- Неактивные сеансы могут удаляться через 1 час.
- Туннель SSH нельзя запустить из других удаленных сред или контейнеров Docker.
- При одновременном открытии трех или нескольких записных книжек Jupyter могут возникнуть проблемы с производительностью или подключением. Это ограничение будет устранено в будущем выпуске.
Различия записных книжек Databricks
При использовании туннеля SSH существуют некоторые различия в записных книжках:
- Файлы Python не определяют глобальные значения Databricks (например
spark, илиdbutils). Их необходимо импортировать явным образом сfrom databricks.sdk.runtime import spark. - Для записных книжек ipynb доступны следующие функции:
- Глобальные переменные Databricks:
display,displayHTML,dbutils,table,sql,udf,getArgument,sc,sqlContext,spark -
%sqlволшебная команда для выполнения ячеек SQL
- Глобальные переменные Databricks:
Для работы с исходным кодом Python "записные книжки":
Выполните поиск для
jupyter.interactiveWindow.cellMarker.codeRegexи задайте его значение:^# COMMAND ----------|^# Databricks notebook source|^(#\\s*%%|#\\s*\\<codecell\\>|#\\s*In\\[\\d*?\\]|#\\s*In\\[ \\])Выполните поиск для
jupyter.interactiveWindow.cellMarker.defaultи задайте его значение:# COMMAND ----------
Устранение неполадок
В этом разделе содержатся сведения об устранении распространенных проблем.
Ошибка подключения SSH или тайм-аут
- Убедитесь, что кластер запущен в пользовательском интерфейсе рабочей области.
- Убедитесь, что исходящий порт 22 открыт и разрешен на ноутбуке, сети и VPN.
- Увеличьте время ожидания SSH. См. статью "Подключение с помощью Visual Studio Code" или "Курсор".
- Для ошибок несоответствия ключей удалите
~/.databricks/ssh-tunnel-keysи повторно выполните командуdatabricks ssh setup. - Для ошибок "идентификация удаленного узла изменилась", проверьте файл
~/.ssh/known_hostsи удалите записи, связанные с вашим кластером. - Сеансы SSH могут прерываться через 1 час, и к одному кластеру можно установить не более 10 SSH-подключений. См. Ограничения.
Команда code не найдена
Если вы видите Error: exec: "code": executable file not found in $PATH, откройте палитру команд (Cmd/CTRL+SHIFT+P), выберите команду оболочки: установить команду "code" в PATH и перезапустить IDE или сеанс терминала.
Ошибки проверки подлинности CLI
- Убедитесь, что профиль CLI Databricks действителен, используя
databricks auth login. - Убедитесь, что у вас есть
CAN MANAGEразрешения на кластер.
Мой код не работает
- Убедитесь, что вы настроили виртуальную среду Databricks, ознакомьтесь с кодом Run (Visual Studio Code или Cursor)
- Записные книжки IPYNB и
*.pyзаписные книжки Databricks имеют доступ к глобальным переменным Databricks, но файлы Python*.pyне имеют. См. различия записных книжек Databricks.
Файлы исчезают или среда сбрасывается после перезапуска кластера
- Файлы в
/Workspace,/Volumesи/dbfsточках монтирования сохраняются после перезапуска кластера. Файлы в/home,/rootа также другие локальные пути являются временными и потеряны при перезапуске. - Используйте управление библиотекой кластера для постоянных зависимостей. При необходимости автоматизируйте переустановки с помощью скриптов инициализации. См. статью "Что такое скрипты инициализации?".
Ошибка при настройке SSH в Windows (WSL)
Запустите databricks ssh setup непосредственно в Windows, а не в WSL. Экземпляр Windows Visual Studio Code не может найти конфигурации SSH, созданные на стороне WSL.
Часто задаваемые вопросы
Как туннель SSH отличается от Databricks Connect?
Databricks Connect позволяет создавать код с помощью API Spark и выполнять их удаленно на вычислительных ресурсах Databricks, а не в локальном сеансе Spark. Расширение Databricks Visual Studio Code использует Databricks Connect для обеспечения встроенной отладки пользовательского кода в Databricks.
Туннель SSH позволяет получить доступ к рабочей области из интегрированной среды разработки и перемещать всю среду разработки на вычислительные ресурсы — Python, ядро и все выполнение выполняется в Databricks с полным доступом к вычислительным ресурсам.
Как защищены код и данные?
Весь код выполняется внутри вашего облачного VPC Databricks. Данные или код не покидают безопасную среду. Трафик SSH полностью зашифрован.
Какие интегрированные среды разработки поддерживаются?
Visual Studio Code и Cursor официально поддерживаются. Любая интегрированная среда разработки с возможностями SSH совместима, но тестируются только VS Code и Cursor.
Доступны ли все функции записной книжки Databricks из интегрированной среды разработки?
Некоторые функции, такие как display(), dbutilsи %sql доступны с ограничениями или ручной настройкой. См. различия записных книжек Databricks.
Запускается ли кластер автоматически при подключении с помощью туннеля SSH?
Да, но если для запуска кластера требуется больше времени ожидания подключения, попытка подключения завершится ошибкой. Чтобы предотвратить это, увеличьте значение Remote.SSH: подключите время ожидания из палитры команд (или remote.SSH.connectTimeout в settings.json), чтобы уменьшить вероятность ошибок времени ожидания.
Как узнать, запущен ли кластер?
Перейдите к вычислению в пользовательском интерфейсе рабочей области Databricks и проверьте состояние кластера. Кластер должен показывать состояние работа, чтобы подключение SSH работало.
Как отключить сеанс SSH/IDE?
Сеанс можно отключить, закрыв окно интегрированной среды разработки, используя параметр "Отключить " в интегрированной среде разработки, закрыв терминал SSH или выполнив exit команду в терминале.
Как остановить кластер и избежать расходов, когда я не работаю?
Чтобы немедленно остановить кластер, завершите работу кластера из пользовательского интерфейса рабочей области. Перейдите к разделу "Вычисления " в пользовательском интерфейсе рабочей области Databricks, найдите кластер и нажмите кнопку "Завершить " или "Остановить".
Задайте короткую политику автоматического завершения в кластере из пользовательского интерфейса рабочей области. После отключения сервер SSH ожидает в течение shutdown-delay периода (по умолчанию: 10 минут), затем применяется время ожидания простоя для кластера.
Как обрабатывать постоянные зависимости?
Зависимости, установленные во время сеанса, теряются после перезапуска кластера. Используйте постоянное хранилище (/Workspace/Users/<your-username>) для требований и сценариев установки. Используйте библиотеки кластера или скрипты инициализации для автоматизации.
Какие методы проверки подлинности поддерживаются?
Проверка подлинности использует CLI Databricks и ваш файл конфигурации профилей ~/.databrickscfg. Ключи SSH обрабатываются туннельом SSH.
Можно ли подключиться к внешним базам данных или службам из кластера?
Да, если сеть кластера разрешает исходящие подключения и у вас есть необходимые библиотеки.
Можно ли использовать дополнительные расширения интегрированной среды разработки?
Большинство расширений работают при установке в удаленном сеансе SSH в зависимости от интегрированной среды разработки и кластера. Visual Studio Code по умолчанию не устанавливает локальные расширения на удаленных узлах. Их можно установить вручную, открыв панель расширений и включив локальные расширения на удаленном узле. Вы также можете настроить Visual Studio Code для удаленной установки определенных расширений. См. статью "Подключение к Databricks".
Поддерживает ли туннель SSH Приватный канал?
Да, однако администраторы рабочей области должны добавить URL-адреса маркетплейсов расширений Visual Studio Code и Cursor в список разрешённых. Локальный компьютер также должен иметь возможность доступа к Интернету.