Stack CLI (устаревшая версия)
Внимание
Поддержка этой документации прекращена, она возможно, больше не будет обновляться.
Эта информация относится к устаревшим интерфейсам командной строки Databricks версии 0.18 и ниже. Databricks рекомендует использовать более новую версию Интерфейса командной строки Databricks версии 0.205 или более поздней. См. Что такое интерфейс командной строки Databricks?. Чтобы найти версию интерфейса командной строки Databricks, выполните команду databricks -v
.
Для перехода с Databricks CLI версии 0.18 или ниже на Databricks CLI версии 0.205 или более поздней, см. раздел Миграция Databricks CLI.
Интерфейс командной строки Databricks версии 0.205 и выше не поддерживает CLI стека. Databricks рекомендует вместо этого использовать Databricks Terraform Provider.
Примечание.
Для работы с CLI стека требуется CLI Databricks версии 0.8.3 или выше.
Интерфейс командной строки стека — это инструмент для управления стеком ресурсов Azure Databricks, таких как задания, записные книжки и файлы DBFS. Вы можете хранить записные книжки и файлы DBFS локально и создать JSON-шаблон конфигурации стека, который задает сопоставления локальных файлов с путями в рабочей области Azure Databricks, а также конфигурации заданий, запускающих записные книжки.
Используйте для развертывания стека и управления им интерфейс командной строки стека с JSON-шаблоном конфигурации стека.
Чтобы запустить подкоманды CLI для стека Databricks, добавьте их в databricks stack
.
databricks stack --help
Usage: databricks stack [OPTIONS] COMMAND [ARGS]...
[Beta] Utility to deploy and download Databricks resource stacks.
Options:
-v, --version [VERSION]
--debug Debug Mode. Shows full stack trace on error.
--profile TEXT CLI connection profile to use. The default profile is
"DEFAULT".
-h, --help Show this message and exit.
Commands:
deploy Deploy a stack of resources given a JSON configuration of the stack
Usage: databricks stack deploy [OPTIONS] CONFIG_PATH
Options:
-o, --overwrite Include to overwrite existing workspace notebooks and DBFS
files [default: False]
download Download workspace notebooks of a stack to the local filesystem
given a JSON stack configuration template.
Usage: databricks stack download [OPTIONS] CONFIG_PATH
Options:
-o, --overwrite Include to overwrite existing workspace notebooks in the
local filesystem [default: False]
Развертывание стека в рабочей области
Эта подкоманда развертывает стек. Сведения о настройке стека см. в этом разделе.
databricks stack deploy ./config.json
JSON-шаблон конфигурации стека содержит пример config.json
.
Скачать изменения в блокноте стека
Эта подкоманда скачивает записные книжки стека.
databricks stack download ./config.json
Примеры
Настройка стека
Структура файла в примере стека
tree
.
├── notebooks
| ├── common
| | └── notebook.scala
| └── config
| ├── environment.scala
| └── setup.sql
├── lib
| └── library.jar
└── config.json
Этот пример стека содержит основную записную книжку notebooks/common/notebook.scala
вместе с записными книжками настройки в папке notebooks/config
. В lib/library.jar
есть зависимость JAR-библиотеки стека.
config.json
— это JSON-шаблон конфигурации стека. Это то, что передается в интерфейс командной строки (CLI) для развертывания стека.
JSON-шаблон конфигурации стека
Шаблон конфигурации стека описывает его конфигурацию.
cat config.json
{
"name": "example-stack",
"resources": [
{
"id": "example-workspace-notebook",
"service": "workspace",
"properties": {
"source_path": "notebooks/common/notebook.scala",
"path": "/Users/example@example.com/dev/notebook",
"object_type": "NOTEBOOK"
}
},
{
"id": "example-workspace-config-dir",
"service": "workspace",
"properties": {
"source_path": "notebooks/config",
"path": "/Users/example@example.com/dev/config",
"object_type": "DIRECTORY"
}
},
{
"id": "example-dbfs-library",
"service": "dbfs",
"properties": {
"source_path": "lib/library.jar",
"path": "dbfs:/tmp/lib/library.jar",
"is_dir": false
}
},
{
"id": "example-job",
"service": "jobs",
"properties": {
"name": "Example Stack CLI Job",
"new_cluster": {
"spark_version": "7.3.x-scala2.12",
"node_type_id": "Standard_DS3_v2",
"num_workers": 3
},
"timeout_seconds": 7200,
"max_retries": 1,
"notebook_task": {
"notebook_path": "/Users/example@example.com/dev/notebook"
},
"libraries": [
{
"jar": "dbfs:/tmp/lib/library.jar"
}
]
}
}
]
}
Каждое задание, записная книжка рабочей области, каталог рабочей области, файл DBFS или каталог DBFS определяются в виде объекта ResourceConfig. Каждый объект ResourceConfig
, который представляет рабочую область или актив DBFS, содержит сопоставление файла или каталога, где они существуют локально (source_path
), с их расположением в рабочей области или DBFS (path
).
Схема шаблона конфигурации стека устанавливает схему для шаблона конфигурации стека.
Развертывание стека
Стек развертывается с помощью команды databricks stack deploy <configuration-file>
.
databricks stack deploy ./config.json
Во время развертывания стека ресурсы DBFS и рабочей области загружаются в рабочую область Azure Databricks, а затем создаются задания.
Во время развертывания стека JSON-файл StackStatus для развертывания сохраняется в том же каталоге, что и шаблон конфигурации стека, а к его имени непосредственно перед расширением deployed
добавляется .json
(например, ./config.deployed.json
). Этот файл используется интерфейсом командной строки стека для наблюдения за ранее развернутыми ресурсами в рабочей области.
Схема состояния стека описывает схему конфигурации стека.
Внимание
Не пытайтесь изменить или переместить файл состояния стека. Если вы получаете ошибки, касающиеся файла состояния стека, удалите файл и повторите попытку развертывания.
./config.deployed.json
{
"cli_version": "0.8.3",
"deployed_output": [
{
"id": "example-workspace-notebook",
"databricks_id": {
"path": "/Users/example@example.com/dev/notebook"
},
"service": "workspace"
},
{
"id": "example-workspace-config-dir",
"databricks_id": {
"path": "/Users/example@example.com/dev/config"
},
"service": "workspace"
},
{
"id": "example-dbfs-library",
"databricks_id": {
"path": "dbfs:/tmp/lib/library.jar"
},
"service": "dbfs"
},
{
"id": "example-job",
"databricks_id": {
"job_id": 123456
},
"service": "jobs"
}
],
"name": "example-stack"
}
Структуры данных
В этом разделе рассматриваются следующие вопросы.
Схема шаблона конфигурации стека
StackConfig
Это внешние поля шаблона конфигурации стека. Все поля обязательные.
Имя поля | Тип | Описание |
---|---|---|
имя | STRING |
Имя стека. |
ресурсы | Список объектов ResourceConfig. | Ресурс в Azure Databricks. Ресурсы связаны с тремя службами (пространствами имен REST API): рабочей областью, заданиями и DBFS. |
Конфигурация ресурсов
Поля для каждого объекта ResourceConfig
. Все поля обязательные.
Имя поля | Тип | Описание |
---|---|---|
id | STRING |
Уникальный идентификатор ресурса. Уникальность объекта ResourceConfig реализуется принудительным образом. |
услуга | ResourceService | Служба REST API, с которой работает ресурс. Одно из: jobs ,workspace или dbfs . |
свойства | ResourceProperties | Набор полей в этом различается в зависимости от службы ResourceConfig . |
СвойстваРесурса
Свойства ресурса в зависимости от службы ResourceService. Поля классифицируются как используемые или не используемые в REST API Azure Databricks. Все перечисленные поля являются обязательными.
услуга | Поля из REST API, используемые в интерфейсе командной строки программы Stack. | Поля, используемые только в интерфейсе командной строки (CLI) стека |
---|---|---|
Рабочее пространство | path: STRING — удаленные пути в рабочей области для записных книжек или каталогов. (Пример: /Users/example@example.com/notebook )тип_объекта: тип объекта API рабочего пространства — тип объекта Notebook. Может принимать только значение NOTEBOOK или DIRECTORY . |
source_path: STRING — локальный исходный путь к записным книжкам или каталогам рабочей области. Относительный путь к файлу шаблона конфигурации стека или абсолютный путь в файловой системе. |
работа | В любом поле структуры settings или new_settings. Единственное поле, которое не требуется в структуре settings или new_settings, но требуется для CLI стека: name: STRING — название задачи для развертывания. Чтобы избежать создания слишком большого количества повторяющихся заданий, CLI стека требует уникальность имен для заданий, развернутых с помощью стека. |
Нет. |
dbfs | path: STRING — соответствующий удаленный путь DBFS. Начните с dbfs:/ . (Пример: dbfs:/this/is/a/sample/path )is_dir: BOOL — указывает, является ли путь DBFS каталогом или файлом. |
source_path: STRING — локальный исходный путь к файлам или каталогам DBFS. Относительный путь к файлу шаблона конфигурации стека или абсолютный путь в файловой системе. |
ResourceService
Каждый ресурс относится к определенной службе, которая соответствует REST API Databricks. Это сервисы, поддерживаемые стековым интерфейсом командной строки.
Служба | Описание |
---|---|
Рабочее пространство | Записная книжка или каталог рабочей области. |
работы | Задание Azure Databricks. |
dbfs | Файл или каталог DBFS. |
Схема состояния стека
StackStatus
После развертывания стека с помощью интерфейса командной строки создается файл состояния стека. Поля верхнего уровня:
Имя поля | Тип | Описание |
---|---|---|
имя | STRING |
Имя стека. Это то же поле, что и в StackConfig. |
cli_version | STRING |
Версия CLI Databricks, используемая для развертывания стека. |
развернутые_ресурсы | Список объектов ResourceStatus. | Состояние каждого развернутого ресурса. Для каждого ресурса, определенного в StackConfig, здесь создается соответствующий объект ResourceStatus. |
ResourceStatus
Имя поля | Тип | Описание |
---|---|---|
id | STRING |
Уникальный идентификатор стека для ресурса. |
услуга | ResourceService | Служба REST API, с которой работает ресурс. Одно из: jobs workspace или dbfs . |
databricks_id | DatabricksId | Физический идентификатор развернутого ресурса. Фактическая схема зависит от типа (службы) ресурса. |
DatabricksId
Объект JSON, поле которого зависит от службы.
Служба | Поле в JSON | Тип | Описание |
---|---|---|---|
Рабочая область | путь | STRING | Абсолютный путь к записной книжке или каталогу в рабочей области Azure Databricks. Именование согласовано с API рабочей области. |
работы | идентификатор_работы | STRING | Идентификатор задания, представленный в рабочем пространстве Azure Databricks. Его можно использовать для обновления уже развернутых заданий. |
dbfs | путь | STRING | Абсолютный путь к записной книжке или каталогу в рабочей области Azure Databricks. Именование соответствует DBFS API. |