Condividi tramite


Migliorare l'affidabilità dell'avvio del calcolo usando tipi di nodo flessibili

Le risorse di calcolo classiche in Azure Databricks usano tipi di nodo flessibili, che consentono alla risorsa di calcolo di eseguire il fallback a tipi di istanza alternativi e compatibili quando il tipo di istanza specificato non è disponibile.

Questo comportamento migliora l'affidabilità dell'avvio del calcolo riducendo gli errori di capacità (errori di stockout) durante l'avvio del calcolo. Per le istanze spot con fallback, i tipi di nodo flessibili possono tentare di acquisire istanze più volte in tipi di istanza diversi prima di eseguire il fallback alle istanze su richiesta. Ciò comporta una percentuale più elevata di istanze in esecuzione come spot anziché su richiesta, riducendo i costi di calcolo totali.

Funzionamento dei tipi di nodo flessibili

Quando si avvia una risorsa di calcolo, il provider di servizi cloud a volte esaurisce la capacità per il tipo di istanza specificato. In questo modo si verifica un errore di stockout:

CLOUD_PROVIDER_RESOURCE_STOCKOUT

Anche se questi errori sono più comuni per le istanze spot, possono verificarsi anche per le istanze su richiesta.

Con i tipi di nodo flessibili abilitati, Azure Databricks genera o usa automaticamente l'elenco di fallback specificato di tipi di istanza compatibili. Se il tipo di istanza preferito non è disponibile, Azure Databricks tenta di acquisire questi tipi di istanza di riserva anziché fallire immediatamente.

Abilitare i tipi di nodo flessibili nell'area di lavoro

Gli amministratori dell'area di lavoro possono abilitare i tipi di nodo flessibili nelle impostazioni di amministrazione dell'area di lavoro. Quando abilitato, tutte le nuove risorse di calcolo classiche ricorrono automaticamente a tipi di nodo alternativi. Le risorse di calcolo per tutti gli scopi esistenti non sono interessate. Vedere Come influiscono i carichi di lavoro esistenti?

Per abilitare i tipi di nodo flessibili in un'area di lavoro:

  1. In qualità di amministratore dell'area di lavoro, passare alla pagina delle impostazioni.
  2. Fare clic sulla scheda Calcolo .
  3. Attivare o disattivare l'impostazione Abilita tipi di nodo flessibili automatici :
    • Abilitato: tutte le nuove risorse di calcolo classiche usano automaticamente tipi di nodo flessibili, a meno che non siano disabilitate in modo esplicito.
    • Disabilitato: le risorse di calcolo classiche usano solo tipi di nodo flessibili se si configura node_type_flexibility in modo esplicito nella configurazione delle risorse di calcolo.

Se questa impostazione è disabilitata, gli utenti possono comunque configurare tipi di nodo flessibili per le singole risorse di calcolo configurando in modo esplicito i worker_node_type_flexibility campi o driver_node_type_flexibility con elenchi di fallback personalizzati. Per impedire agli utenti di configurare questi campi, gli amministratori dell'area di lavoro possono usare i criteri di calcolo. Vedere Esempi di criteri relativi ai tipi di nodo flessibili.

Specificare un elenco di fallback personalizzato

Quando nell'area di lavoro sono abilitati tipi di nodo flessibili, Azure Databricks genera automaticamente un elenco di fallback di tipi di istanza compatibili per le nuove risorse di calcolo.

Se non si vuole usare l'elenco di fallback generato automaticamente, è possibile specificare invece il proprio elenco di fallback. Inoltre, se i tipi di nodo flessibili sono disabilitati nell'area di lavoro, è comunque possibile specificare un elenco di fallback personalizzato per la risorsa di calcolo. Solo alcuni tipi di istanza sono compatibili. Vedere Requisiti del tipo di istanza di fallback. Per un riferimento ai tipi di istanza compatibili, vedere le informazioni di riferimento sulla compatibilità dei tipi di nodo flessibili.

Gli elenchi di fallback personalizzati sono supportati solo quando si configura il calcolo usando l'API. Vedere la documentazione di riferimento dell'API Clusters .

Ad esempio, la configurazione seguente specifica il tipo di istanza a cui verrà eseguito il fallback della risorsa di calcolo, se necessario:


  "worker_node_type_flexibility": {
    "alternate_node_type_ids": [
      "Standard_L8s_v2"
    ]
  },
  "driver_node_type_flexibility": {
    "alternate_node_type_ids": [
      "Standard_L8s_v2"
    ]
  },

Requisiti del tipo di istanza di fallback

I tipi di istanza di fallback devono essere compatibili con il tipo di istanza preferito del calcolo. L'elenco dei tipi di istanza di fallback deve soddisfare i requisiti seguenti:

  • Stesso numero di vCPU e memoria del tipo di istanza preferito (le istanze di fallback devono avere tra 100% e 110% della memoria del tipo di istanza preferita)
  • Stesso numero di dischi locali e dimensioni dei dischi del tipo di istanza preferito
  • Stessa architettura CPU del tipo di istanza preferito (tutto ARM o tutto x86)
  • Stessa immagine del sistema operativo e supporto Photon per il tipo di istanza preferito
  • Nessun tipo di istanza GPU (GPU non sono supportati)
  • Massimo 5 tipi di istanza di fallback univoci
  • Tutti i tipi di istanza devono avere un supporto di archiviazione coerente: o tutte supportano l'archiviazione PREMIUM_LRS o nessuna la supporta.

Usare tipi di nodo flessibili con gruppi

È anche possibile personalizzare un elenco di fallback per i pool. Nell'API Pools, impostare il campo node_type_flexibility per specificare i tipi di istanza di fallback. Per esempio:

"node_type_flexibility": {
    "alternate_node_type_ids": ["Standard_L8s_v2"]
  }

I pool non supportano l'uso di tipi di istanza flessibili per mantenere il numero minimo di inattività. Il pool può avviare macchine virtuali solo utilizzando i tipi di istanza di fallback quando si tenta un avvio di calcolo dal pool. Il pre-riscaldamento del minIdle conteggio usa solo il tipo di istanza preferito.

Visualizza i tipi di istanza acquisiti

Quando si usano tipi di nodo flessibili, la risorsa di calcolo può essere costituita da una combinazione di tipi di istanza diversi. Tutti i tipi di istanza di fallback sono compatibili con il tipo preferito, mantenendo lo stesso numero di vCPU, memoria, layout del disco, architettura della CPU e immagine del sistema operativo per garantire il corretto funzionamento del carico di lavoro.

È possibile visualizzare i tipi di istanza acquisiti per la risorsa di calcolo:

  1. Nella pagina dei dettagli di calcolo fare clic sui tre puntini accanto al pulsante Termina e selezionare Visualizza JSON.
  2. Esaminare il campo node_type_id per ogni executor per determinare quali tipi di istanza sono in esecuzione.

È anche possibile usare l'API Recupera informazioni cluster per recuperare queste informazioni a livello di codice. Inoltre, gli utenti autorizzati ad accedere alle tabelle di sistema possono eseguire query sulla node_timelines tabella. Consulta lo schema della tabella della sequenza temporale del nodo.

Disabilitare i tipi di nodo flessibili in una risorsa di calcolo

Annotazioni

Databricks consiglia di mantenere abilitati i tipi di nodo flessibili, a meno che non siano previsti requisiti rigorosi per un tipo di istanza specifico.

Se si preferisce che l'avvio di calcolo non riesca anziché il fallback a un tipo di istanza alternativo, è possibile disabilitare il comportamento del nodo flessibile a livello di singola risorsa di calcolo. Questa opzione è supportata solo quando si usa l'API Clusters. Per disabilitare i tipi di nodo flessibili, impostare i campi tipo di nodo flessibili come vuoti nella configurazione di calcolo. Per esempio:

"worker_node_type_flexibility": {
  "alternate_node_type_ids": []
},
"driver_node_type_flexibility": {
  "alternate_node_type_ids": []
}

Domande frequenti

In che modo sono interessati i carichi di lavoro esistenti?

Le risorse di calcolo all-purpose esistenti sono invariate. Per usare il fallback automatico, creare una nuova risorsa di calcolo tutto scopo dopo aver abilitato l'impostazione oppure aggiornare la specifica dell'API delle risorse di calcolo con un elenco di fallback personalizzato.

Per i processi che usano il calcolo del processo, ogni esecuzione crea una nuova risorsa di calcolo, quindi le esecuzioni successive dei processi esistenti usano automaticamente il fallback flessibile.

Funziona con i pool di istanze?

Sì. I tipi di nodo flessibili si applicano alle configurazioni del pool di istanze. Alcuni punti da notare:

  • Il numero minimo di inattività rimane coerente: le istanze minime di inattività del pool (minIdle) vengono mantenute usando il tipo di nodo primario. Tutte le nuove macchine virtuali avviate tramite una richiesta di avvio del cluster possono essere soddisfatte usando tipi di nodo di fallback compatibili quando il tipo primario è vincolato.
  • Modifiche del pool: non è possibile modificare un pool di istanze dopo la creazione. Se si desidera modificare le impostazioni di fallback personalizzate, è necessario creare un nuovo pool di istanze.
  • Visibilità API: la /api/2.0/instance-pools/get risposta non mostra la flessibilità del tipo di nodo, a meno che non sia stato configurato in modo esplicito un elenco di fallback personalizzato nel pool. Per visualizzare la configurazione di fallback del pool di istanze, è possibile creare un cluster di esempio e visualizzare la /api/2.1/clusters/get risposta.

Come funziona la fatturazione?

Il prezzo viene calcolato in base alle tariffe DBU standard per i tipi di istanza effettivamente acquisiti. Tutti gli sconti a livello di istanza disponibili con il provider di servizi cloud si applicano automaticamente ai tipi di istanza corrispondenti usati dalla risorsa di calcolo.

In che modo questo interagisce con le quote dei tipi di nodo nel mio spazio di lavoro?

Se un avvio di calcolo non riesce perché il tipo di nodo primario raggiunge un limite di "quota superata", i tipi di nodo flessibili possono comunque migliorare l'affidabilità dell'avvio eseguendo automaticamente il fallback a un'alternativa compatibile. Detto questo, per gli errori basati sulle quote, Databricks consiglia di considerare il fallback come rete di sicurezza anziché la correzione primaria. È possibile richiedere un aumento della quota dal provider di servizi cloud in modo che Azure Databricks possa acquisire in modo coerente i tipi di istanza preferiti prima di ricorrere a alternative o usare il calcolo serverless.

È possibile abilitare i tipi di nodo flessibili solo per un subset dei carichi di lavoro?

Il fallback del tipo di nodo generato automaticamente è configurabile solo a livello di area di lavoro. Tuttavia, sono disponibili due opzioni per controllare il comportamento di fallback di un carico di lavoro specifico:

  • (Scelta consigliata) Abilitare i tipi di nodo flessibili per l'area di lavoro, quindi rifiutare esplicitamente un cluster specifico impostando alternate_node_type_ids un elenco [] vuoto nella specifica del cluster.
  • Disabilitare i tipi di nodo flessibili per l'intera area di lavoro, quindi acconsentire esplicitamente a una specifica specifica del cluster fornendo un elenco di fallback personalizzato in alternate_node_type_ids che soddisfi i requisiti di compatibilità.