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 и выше не поддерживает интерфейс командной строки стека. Databricks рекомендует вместо этого использовать поставщик Databricks Terraform.
Примечание.
Для работы с интерфейсом командной строки стека требуется интерфейс командной строки 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 для развертывания сохраняется в том же каталоге, что и шаблон конфигурации стека, а к его имени непосредственно перед расширением .json
добавляется deployed
(например, ./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
Это внешние поля шаблона конфигурации стека. Все поля обязательные.
Имя поля | Тип | Description |
---|---|---|
имя | STRING |
Имя стека. |
ресурсы | Список объектов ResourceConfig. | Ресурс в Azure Databricks. Ресурсы связаны с тремя службами (пространствами имен REST API): рабочей областью, заданиями и DBFS. |
ResourceConfig
Поля для каждого объекта ResourceConfig
. Все поля обязательные.
Имя поля | Тип | Описание |
---|---|---|
id | STRING |
Уникальный идентификатор ресурса. Уникальность объекта ResourceConfig реализуется принудительным образом. |
service | ResourceService | Служба REST API, с которой работает ресурс. Может принимать одно из следующих значений: jobs ,workspace или dbfs . |
свойства | ResourceProperties | Набор полей в этом списке зависит от службы ResourceConfig . |
ResourceProperties
Свойства ресурса в зависимости от службы ResourceService. Поля классифицируются как используемые или не используемые в REST API Azure Databricks. Все перечисленные поля являются обязательными.
service | Поля из REST API, используемые в интерфейсе командной строки стека. | Поля, используемые только в интерфейсе командной строки (CLI) стека |
---|---|---|
Рабочая область | path: STRING — удаленные пути в рабочей области для записных книжек или каталогов. (Пример: /Users/example@example.com/notebook )object_type: тип объекта Workspace 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. Это службы, поддерживаемые интерфейсом командной строки стека.
Служба | Description |
---|---|
Рабочая область | Записная книжка или каталог рабочей области. |
задания: | Задание Azure Databricks. |
dbfs | Файл или каталог DBFS. |
Схема состояния стека
StackStatus
После развертывания стека с помощью интерфейса командной строки создается файл состояния стека. Поля верхнего уровня:
Имя поля | Тип | Description |
---|---|---|
имя | STRING |
Имя стека. Это то же поле, что и в StackConfig. |
cli_version | STRING |
Версия CLI Databricks, используемая для развертывания стека. |
deployed_resources | Список объектов ResourceStatus. | Состояние каждого развернутого ресурса. Для каждого ресурса, определенного в StackConfig, здесь создается соответствующий объект ResourceStatus. |
ResourceStatus
Имя поля | Тип | Описание |
---|---|---|
id | STRING |
Уникальный идентификатор стека для ресурса. |
service | ResourceService | Служба REST API, с которой работает ресурс. Может принимать одно из следующих значений: jobs ,workspace или dbfs . |
databricks_id | DatabricksId | Физический идентификатор развернутого ресурса. Фактическая схема зависит от типа (службы) ресурса. |
DatabricksId
Объект JSON, поле которого зависит от службы.
Service | Поле в JSON | Тип | Описание |
---|---|---|---|
Рабочая область | path | STRING | Абсолютный путь к записной книжке или каталогу в рабочей области Azure Databricks. Именование согласовано с API рабочей области. |
задания: | job_id | STRING | Идентификатор задания, как показано в рабочей области Azure Databricks. Его можно использовать для обновления уже развернутых заданий. |
dbfs | path | STRING | Абсолютный путь к записной книжке или каталогу в рабочей области Azure Databricks. Именование соответствует API DBFS. |