Dela via


Stack CLI (äldre)

Viktigt!

Den här dokumentationen har dragits tillbaka och kanske inte uppdateras.

Den här informationen gäller för äldre Databricks CLI-versioner 0.18 och senare. Databricks rekommenderar att du använder nyare Databricks CLI version 0.205 eller senare i stället. Se Vad är Databricks CLI?. För att hitta din version av Databricks CLI, kör databricks -v.

Information om hur du migrerar från Databricks CLI version 0.18 eller senare till Databricks CLI version 0.205 eller senare finns i Databricks CLI-migrering.

Databricks CLI-versionerna 0.205 och senare stöder inte STACK CLI. Databricks rekommenderar att du använder Databricks Terraform-providern i stället.

Kommentar

Stack CLI kräver Databricks CLI 0.8.3 eller senare.

Stack CLI är ett sätt att hantera en stack med Azure Databricks-resurser, till exempel jobb, notebook-filer och DBFS-filer. Du kan lagra notebook-filer och DBFS-filer lokalt och skapa en JSON-mall för stackkonfiguration som definierar mappningar från dina lokala filer till sökvägar i Azure Databricks-arbetsytan, tillsammans med konfigurationer av jobb som kör notebook-filerna.

Använd STACK CLI med JSON-mallen för stackkonfiguration för att distribuera och hantera din stack.

Du kör Databricks-stackens CLI-underkommandon genom att lägga till dem i 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]

Distribuera en stack till en arbetsyta

Det här underkommando distribuerar en stack. Se Stack-konfiguration för att lära dig hur du konfigurerar en stack.

databricks stack deploy ./config.json

JSON-mall för stackkonfiguration ger ett exempel på config.json.

Ladda ner ändringar i stack-noteringsboken

Det här underkommandot laddar ned anteckningsböckerna för en stack.

databricks stack download ./config.json

Exempel

Stack-konfiguration

Filstruktur för en exempelstack

tree
.
├── notebooks
|   ├── common
|   |   └── notebook.scala
|   └── config
|       ├── environment.scala
|       └── setup.sql
├── lib
|   └── library.jar
└── config.json

Den här exempelstacken innehåller en huvudanteckningsbok i notebooks/common/notebook.scala tillsammans med konfigurationsanteckningsböcker i notebooks/config mappen. Det finns ett JAR-biblioteksberoende för stacken i lib/library.jar. config.json är stackkonfigurationens JSON-mall för stacken. Det här är vad som skickas till STACK CLI för distribution av stacken.

JSON-mall för stackkonfiguration

Stackkonfigurationsmallen beskriver stackkonfigurationen.

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"
          }
        ]
      }
    }
  ]
}

Varje jobb, arbetsyteanteckningsbok, arbetsytekatalog, DBFS-fil eller DBFS-katalog definieras som en ResourceConfig. Varje ResourceConfig som representerar en arbetsyta eller DBFS-resurs innehåller en mappning från filen eller katalogen där den finns lokalt (source_path) till den plats där den skulle finnas i arbetsytan eller i DBFS (path).

Schemat för stackkonfigurationsmallen beskriver schemat för stackkonfigurationsmallen.

Distribuera en stack

Du distribuerar en stack med kommandot databricks stack deploy <configuration-file> .

databricks stack deploy ./config.json

Under stackutplaceringen laddas DBFS och arbetsytans resurser upp till din Azure Databricks-arbetsyta och arbetsuppgifter skapas.

Vid stackdistributionen sparas en StackStatus JSON-fil för distributionen i samma katalog som stackkonfigurationsmallen med namnet och läggs till deployed omedelbart före .json tillägget: (till exempel ./config.deployed.json). Den här filen används av Stack CLI för att hålla reda på tidigare distribuerade resurser på din arbetsyta.

Stackstatusschema beskriver schemat för en stackkonfiguration.

Viktigt!

Försök inte redigera eller flytta stackstatusfilen. Om du får felmeddelanden gällande stackstatusfilen, ta bort filen och försök att distribuera igen.

./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"
}

Datastrukturer

I detta avsnitt:

Schema för stackkonfigurationsmall

StackConfig

Det här är de yttre fälten i en stackkonfigurationsmall. Alla fält måste fyllas i.

Fältnamn Typ Beskrivning
namn STRING Namnet på stacken.
resurser Lista över ResourceConfig En tillgång i Azure Databricks. Resurser är relaterade till tre tjänster (REST API-namnområden): arbetsyta, jobb och dbfs.

ResourceConfig

Fälten för varje ResourceConfig. Alla fält måste fyllas i.

Fältnamn Typ Beskrivning
id STRING Ett unikt ID för resursen. Unikheten hos ResourceConfig säkerställs.
service ResourceService REST API-tjänsten som resursen körs på. En av: jobs,
workspace, eller dbfs.
egenskaper ResourceProperties Fälten i detta skiljer sig beroende på tjänsten ResourceConfig .

Resursegenskaper

Egenskaperna för en resurs efter ResourceService. Fälten klassificeras som de som används eller inte används i ett REST-API för Azure Databricks. Alla fält som anges är obligatoriska.

service Fält från REST-API:et som används i Stack CLI Fält som endast används i Stack CLI
arbetsyta path: STRING: Fjärrarbetsytesökvägar för anteckningsböcker eller kataloger. (Ex. /Users/example@example.com/notebook)
object_type: Api för arbetsyta – Notebook-objekttyp. Kan bara vara NOTEBOOK eller DIRECTORY.
source_path: STRING– Lokal sökväg till arbetsytans anteckningsböcker eller kataloger. En relativ sökväg till stackkonfigurationsmallfilen eller en absolut sökväg i filsystemet.
Jobb Valfritt fält i inställningarna eller strukturen new_settings. Det enda fältet som inte krävs i inställningarna eller new_settings-strukturen men som krävs för CLI:n i stacken är:
name: STRING– Namnet på det jobb som ska distribueras. För att inte skapa för många duplicerade jobb framtvingar Stack CLI unika namn i stackdistribuerade jobb.
Inga.
dbfs path: STRING– Matchande fjärr-DBFS-sökväg. Måste börja med dbfs:/. (ex. dbfs:/this/is/a/sample/path)
is_dir: BOOL– Om en DBFS-sökväg är en katalog eller en fil.
source_path: STRING– Sökväg till lokal källa för DBFS-filer eller kataloger. En relativ sökväg till stackkonfigurationsmallfilen eller en absolut sökväg i filsystemet.

ResourceService

Varje resurs tillhör en specifik tjänst som överensstämmer med Databricks REST API. Det här är de tjänster som stöds av Stack CLI.

Tjänst Beskrivning
arbetsyta En anteckningsbok eller katalog för arbetsytan.
Jobb Ett Azure Databricks-jobb.
dbfs En DBFS-fil eller -katalog.

Schema för stackstatus

StackStatus

En stackstatusfil skapas när en stack har distribuerats med hjälp av CLI. Fälten på den översta nivån är:

Fältnamn Typ Beskrivning
namn STRING Namnet på stacken Det här fältet är samma fält som i StackConfig.
cli_version STRING Den version av Databricks CLI som används för att distribuera stacken.
distribuerade resurser Lista över ResourceStatus Status för varje distribuerad resurs. För varje resurs som definierats i StackConfig genereras motsvarande ResourceStatus här.

ResourceStatus

Fältnamn Typ Beskrivning
id STRING Ett stackunikt ID för resursen.
service ResourceService REST API-tjänsten som resursen körs på. En av: jobs,
workspace, eller dbfs.
databricks_id DatabricksId Det fysiska ID:t för den distribuerade resursen. Det faktiska schemat beror på resursens typ (tjänst).

DatabricksId

Ett JSON-objekt vars fält är beroende av tjänsten.

Tjänst Fält i JSON Typ Beskrivning
arbetsyta väg sträng Den absoluta sökvägen för anteckningsboken eller katalogen i en Azure Databricks-arbetsyta. Namngivningen är konsekvent med arbetsytans API.
Jobb job_id STRÄNG Jobb-ID:t som visas på en Azure Databricks-arbetsyta. Detta kan användas för att uppdatera jobb som redan har distribuerats.
dbfs stig STRÄNG Den fullständiga sökvägen till notebook-filen eller katalogen på en Azure Databricks-arbetsyta. Namngivning är konsekvent med DBFS-API:et.