Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Это важно
Эта функция доступна в бета-версии.
Стоимость и ценообразование функций в бета-версии могут меняться.
SSH-туннель, предоставляемый Databricks, позволяет получить доступ к вашему рабочему пространству и интерактивно выполнять рабочие нагрузки на вычислениях Databricks из IDE через туннель SSH (Secure Shell). Легко настроить, устранить необходимость управления средой и обеспечить безопасность всего кода и данных в рабочей области 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 предоставляет интерактивный сеанс на одном узле. Для длительных задач обучения или многоузлового распределённого обучения вместо этого отправьте рабочую нагрузку с помощью databricks air. См. Использование CLI Databricks с AI Runtime.
После подключения завершите настройку среды разработки. См. статью "Открытые проекты".
Чтобы подключиться к бессерверным вычислениям и запустить сеанс в 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 IDE и 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 или тайм-аут
- Убедитесь, что кластер запущен в пользовательском интерфейсе рабочей области.
- Убедитесь, что ваша сеть, VPN и межсетевой экран разрешают HTTPS- и WebSocket-трафик к домену вашего рабочего пространства. Тоннель SSH не использует порт 22. Он туннелирует весь трафик через ту же HTTPS-конечную точку, что и другие команды CLI Databricks. См . раздел "Настройка правил брандмауэра доменных имен".
- Если прокси-сервер или фаервол проверяет TLS-трафик, убедитесь, что он разрешает запрос на переключение на WebSocket. Посредник, который блокирует или снимает обновление, вызывает сбой соединения или тайм-аут. Попросите сетевого администратора разрешить обновления WebSocket домену рабочего пространства или обойти TLS-инспекцию для этого домена.
- Если вы подключаетесь через корпоративный HTTP-прокси, задайте переменную среды
HTTPS_PROXYили используйтеNO_PROXY, чтобы обойти прокси для домена вашего рабочего пространства. SSH-туннель использует ту же конфигурацию прокси, что и другие команды CLI Databricks. См. конфигурацию прокси-сервера. - Проверьте, есть ли у вашего локального компьютера HTTPS-доступ к
github.comиrelease-assets.githubusercontent.com. - Увеличьте время ожидания 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 в список разрешённых. Локальный компьютер также должен иметь возможность доступа к Интернету.