Поделиться через


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.