Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Это важно
Удаленная разработка находится в бета-версии.
Удаленная разработка Databricks позволяет получить доступ к рабочей области и интерактивно запускать рабочие нагрузки на компьютерах Databricks из интегрированных сред разработки с помощью туннеля SSH. Легко настроить, устранить необходимость управления средой и обеспечить безопасность всего кода и данных в рабочей области Databricks.
Требования
Чтобы использовать удаленную разработку, необходимо:
- Databricks CLI версии 0.269 или более поздней, установленной на вашем локальном компьютере, и аутентификация настроена. См. раздел "Установка".
- Выделенный (один пользователь) кластер под управлением Databricks Runtime 17.0 или более поздней версии. См. обзор выделенных вычислительных ресурсов. Дополнительно:
- Каталог Unity должен быть включен.
- Если политика вычислений существует, она не должна запрещать выполнение заданий.
Настройка подключения 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 запускают все настроенные кластеры при запуске, что может привести к непредвиденным затратам на вычисления.
Подключение к Databricks
Затем подключитесь к Databricks с помощью интегрированной среды разработки или терминала.
Подключение с помощью 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>
Открытие проектов
После подключения используйте Открыть папку из палитры команд и перейдите /Workspace/Users/<your-username>.
Замечание
Файлы в /Workspace, /Volumesа также /dbfs сохраняются во всех перезапусках кластера. Файлы в /home, /rootа также другие локальные пути являются временными и потеряны при перезапуске.
Запустить код (Visual Studio Code или Cursor)
Чтобы запустить код с помощью удаленной разработки, необходимо убедиться, что виртуальная среда Databricks настроена. Эта среда включает все встроенные библиотеки DBR и библиотеки, ограниченные областью вычислений.
Запустите
echo $DATABRICKS_VIRTUAL_ENVиз терминала в интегрированной среде разработки.Пример выходных данных:
/local_disk0/.ephemeral_nfs/envs/pythonEnv-xxx/bin/pythonОткройте палитру команд и выберите Python: Выберите интерпретатор. Вставьте выходные данные из выше.
Откройте новый терминал, и виртуальная среда должна автоматически активироваться.
Чтобы запустить ноутбук Jupyter, убедитесь, что виртуальная среда установлена как ядро. Щелкните "Выбрать ядро" в правом верхнем углу записной книжки.
Python файлы и .ipynb записные книжки можно запускать и отлаживать с помощью стандартных расширений Python и Jupyter.
Управление зависимостями Python
Управлять зависимостями Python можно глобально на уровне кластера или в рамках отдельных проектов с помощью записных книжек.
Библиотеки кластера (рекомендуется)
Установите зависимости через пользовательский интерфейс рабочей области в вычислительных > библиотеках. Они сохраняются при всех перезапусках кластера и доступны в pythonEnv-xxx. См. библиотеки кластера.
Настройка записной книжки для 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 в одном кластере используют одну виртуальную среду.
Ограничения
Удаленная разработка Databricks имеет следующие ограничения:
- Общие кластеры с несколькими пользователями и бессерверными пока не поддерживаются.
- Расширение Databricks для Visual Studio Code и удаленной разработки еще не совместимо и не должно использоваться вместе.
- Файлы, редактируемые за пределами
/Workspace,/Volumesи/dbfsтеряются при перезапуске кластера. - Для каждого кластера разрешено не более 10 подключений SSH.
- Неактивные сеансы могут удаляться через 1 час.
Различия записных книжек Databricks
При использовании удаленной разработки существуют некоторые различия в записных книжках:
- Файлы Python не определяют глобальные значения Databricks (например
spark, илиdbutils). Их необходимо импортировать явным образом сfrom databricks.sdk.runtime import spark. - Для записных книжек ipynb доступны следующие функции:
- Databricks globals:
display,displayHTML,dbutils,table,sql,udf,getArgument,sc,sqlContext,spark -
%sqlволшебная команда для выполнения ячеек SQL
- Databricks globals:
Для работы с исходным кодом 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 к одному кластеру. См. Ограничения.
Ошибки проверки подлинности 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 VS Code не может найти конфигурации SSH, созданные на стороне WSL.
Часто задаваемые вопросы
Как удаленная разработка отличается от Databricks Connect?
Databricks Connect позволяет создавать код с помощью API Spark и выполнять их удаленно на вычислительных ресурсах Databricks, а не в локальном сеансе Spark. Расширение Databricks Visual Studio Code использует Databricks Connect для обеспечения встроенной отладки пользовательского кода в Databricks.
Удаленная разработка позволяет получить доступ к рабочей области из интегрированной среды разработки и перемещать всю среду разработки в кластер — 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 обрабатываются Databrick Remote Development.
Можно ли подключиться к внешним базам данных или службам из кластера?
Да, если сеть кластера разрешает исходящие подключения и у вас есть необходимые библиотеки.
Можно ли использовать дополнительные расширения интегрированной среды разработки?
Большинство расширений работают при установке в удаленном сеансе SSH в зависимости от интегрированной среды разработки и кластера. Visual Studio Code по умолчанию не устанавливает локальные расширения на удаленных узлах. Их можно установить вручную, открыв панель расширений и включив локальные расширения на удаленном узле. Вы также можете настроить Visual Studio Code для удаленной установки определенных расширений. См. статью "Подключение к Databricks".
Поддерживает ли удаленная разработка Приватный канал?
Да, однако администраторы рабочей среды должны внести в белый список URL-адреса торговых площадок расширений VS Code и Cursor. Локальные компьютеры пользователей также должны иметь возможность доступа к Интернету.