Gestire il calcolo

Questo articolo descrive come gestire le risorse di calcolo di Azure Databricks, tra cui la visualizzazione, la modifica, l'avvio, l'interruzione, l'eliminazione, il controllo dell'accesso e il monitoraggio delle prestazioni e dei log. È anche possibile usare l'API Clusters per gestire il calcolo a livello di codice.

Visualizzare il calcolo

Per visualizzare il calcolo, fare clic su icona di calcoloCalcolo nella barra laterale dell'area di lavoro.

Sul lato sinistro sono presenti due colonne che indicano se l'ambiente di calcolo è stato aggiunto e lo stato dell'ambiente di calcolo. Passare il puntatore del mouse sullo stato per ottenere altre informazioni.

Visualizzare la configurazione di calcolo come file JSON

A volte può essere utile visualizzare la configurazione di calcolo come JSON. Ciò è particolarmente utile quando si vuole creare un calcolo simile usando l'API Clusters. Quando si visualizza un calcolo esistente, passare alla scheda Configurazione , fare clic su JSON nella parte superiore destra della scheda, copiare il codice JSON e incollarlo nella chiamata API. La visualizzazione JSON è di sola lettura.

Aggiungere un calcolo

30 giorni dopo la chiusura di un calcolo, viene eliminato definitivamente. Per mantenere una configurazione di calcolo tutto scopo dopo che un ambiente di calcolo è stato terminato per più di 30 giorni, un amministratore può aggiungere il calcolo. È possibile aggiungere fino a 100 risorse di calcolo.

Amministrazione è possibile aggiungere un calcolo dall'elenco di calcolo o dalla pagina dei dettagli di calcolo facendo clic sull'icona a forma di puntina.

Modificare un ambiente di calcolo

È possibile modificare la configurazione di un ambiente di calcolo dall'interfaccia utente dei dettagli di calcolo.

Nota

  • I notebook e i processi collegati all'ambiente di calcolo rimangono collegati dopo la modifica.
  • Le librerie installate nell'ambiente di calcolo rimangono installate dopo la modifica.
  • Se si modifica un attributo di un ambiente di calcolo in esecuzione ,ad eccezione delle dimensioni di calcolo e delle autorizzazioni, è necessario riavviarlo. Ciò può compromettere gli utenti che attualmente usano il calcolo.
  • È possibile modificare solo un calcolo in esecuzione o terminato. È tuttavia possibile aggiornare le autorizzazioni per il calcolo non in tali stati nella pagina dei dettagli di calcolo.

Clonare un ambiente di calcolo

Per clonare un ambiente di calcolo esistente, selezionare Clona dal menu kebab del Menu Kebab calcolo (noto anche come menu a tre punti).

Dopo aver selezionato clone, l'interfaccia utente di creazione del calcolo si apre prepopolato con la configurazione di calcolo. I seguenti attributi non sono inclusi nel clone:

  • Autorizzazioni di calcolo
  • Librerie installate
  • Notebook collegati

Autorizzazioni di calcolo

Esistono quattro livelli di autorizzazione per un ambiente di calcolo: NO PERMISSIONS, CAN ATTACH TO, CAN RESTART e CAN MANAGE. Nella tabella sono elencate le capacità per ogni autorizzazione.

Importante

Gli utenti con autorizzazioni CAN ATTACH TO possono visualizzare le chiavi dell'account del servizio nel file log4j. Prestare attenzione quando si concede questo livello di autorizzazione.

Abilità NESSUNA AUTORIZZAZIONE PUÒ COLLEGARSI A PUÒ RIAVVIARE PUÒ GESTIRE
Collegare un notebook al calcolo x x x
View Spark UI x x x
Visualizzare le metriche di calcolo x x x
Visualizzare i log dei driver x (vedere la nota)
Terminare il calcolo x x
Avviare e riavviare il calcolo x x
Modificare il calcolo x
Collegare la libreria al calcolo x
Ridimensionare le risorse di calcolo x
Modify permissions x

Gli amministratori dell'area di lavoro hanno l'autorizzazione CAN MANAGE per tutte le risorse di calcolo nell'area di lavoro. Gli utenti dispongono automaticamente dell'autorizzazione CAN MANAGE per il calcolo creato.

Nota

I segreti non vengono elaborati dal log stdout e stderr dai flussi del driver Spark di un cluster. Per proteggere i dati sensibili, per impostazione predefinita, i log dei driver Spark sono visualizzabili solo dagli utenti con l'autorizzazione CAN MANAGE per il processo, la modalità di accesso utente singolo e i cluster in modalità di accesso condiviso. Per consentire agli utenti con l'autorizzazione CAN ATTACH TO o CAN RESTART per visualizzare i log in questi cluster, impostare la proprietà di configurazione Spark seguente nella configurazione del cluster: spark.databricks.acl.needAdminPermissionToViewLogs false.

In nessun cluster in modalità di accesso condiviso isolamento i log del driver Spark possono essere visualizzati dagli utenti con l'autorizzazione CAN ATTACH TO o CAN MANAGE. Per limitare gli utenti che possono leggere i log solo agli utenti con l'autorizzazione CAN MANAGE, impostare su spark.databricks.acl.needAdminPermissionToViewLogstrue.

Vedere Configurazione di Spark per informazioni su come aggiungere proprietà Spark a una configurazione del cluster.

Configurare le autorizzazioni di calcolo

Questa sezione descrive come gestire le autorizzazioni usando l'interfaccia utente dell'area di lavoro. È anche possibile usare l'API Autorizzazioni o il provider Terraform di Databricks.

È necessario disporre dell'autorizzazione CAN MANAGE per un ambiente di calcolo per configurare le autorizzazioni di calcolo.

  1. Nella barra laterale fare clic su Calcolo.
  2. Nella riga per il calcolo fare clic sul menu Puntini di sospensione verticali kebab a destra e selezionare Modifica autorizzazioni.
  3. In Autorizzazione Impostazioni fare clic sul menu a discesa Seleziona utente, gruppo o entità servizio e selezionare un utente, un gruppo o un'entità servizio.
  4. Selezionare un'autorizzazione dal menu a discesa delle autorizzazioni.
  5. Fare clic su Aggiungi e quindi su Salva.

Terminare un ambiente di calcolo

Per salvare le risorse di calcolo, è possibile terminare un calcolo. La configurazione dell'ambiente di calcolo terminato viene archiviata in modo che possa essere riutilizzata (o, nel caso di processi, avvio automatico) in un secondo momento. È possibile terminare manualmente un calcolo o configurare il calcolo per terminare automaticamente dopo un periodo di inattività specificato. Quando il numero di calcolo terminato supera 150, il calcolo meno recente viene eliminato.

A meno che un ambiente di calcolo non venga aggiunto o riavviato, viene eliminato automaticamente e definitivamente 30 giorni dopo la chiusura.

Le risorse di calcolo terminate vengono visualizzate nell'elenco di calcolo con un cerchio grigio a sinistra del nome di calcolo.

Nota

Quando si esegue un processo in un nuovo ambiente di calcolo del processo (in genere consigliato), il calcolo termina e non è disponibile per il riavvio al termine del processo. D'altra parte, se si pianifica un processo per l'esecuzione in un ambiente di calcolo all-purpose esistente che è stato terminato, tale calcolo verrà avviato automaticamente.

Importante

Se si usa un'area di lavoro Premium di valutazione, tutte le risorse di calcolo in esecuzione vengono terminate:

  • Quando si aggiorna un'area di lavoro al livello Premium completo.
  • Se l'area di lavoro non viene aggiornata e la versione di valutazione scade.

Terminazione manuale

È possibile terminare manualmente un calcolo dall'elenco di calcolo (facendo clic sul quadrato nella riga del calcolo) o sulla pagina dei dettagli di calcolo facendo clic su Termina.

Terminazione automatica

È anche possibile impostare la terminazione automatica per un calcolo. Durante la creazione del calcolo, è possibile specificare un periodo di inattività in minuti dopo il quale si vuole che il calcolo termini.

Se la differenza tra l'ora corrente e l'ultima esecuzione del comando nel calcolo è maggiore del periodo di inattività specificato, Azure Databricks termina automaticamente tale calcolo.

Un ambiente di calcolo viene considerato inattivo quando tutti i comandi nel calcolo, inclusi processi Spark, Structured Streaming e chiamate JDBC, hanno terminato l'esecuzione.

Avviso

  • Il calcolo non segnala l'attività risultante dall'uso di D Flussi. Ciò significa che un calcolo con terminazione automatica può essere terminato durante l'esecuzione di D Flussi. Disattivare la terminazione automatica per il calcolo che esegue D Flussi o prendere in considerazione l'uso di Structured Streaming.
  • Le risorse di calcolo inattive continuano ad accumulare addebiti per le istanze cloud e DBU durante il periodo di inattività prima della chiusura.

Configurare la terminazione automatica

È possibile configurare la terminazione automatica nella nuova interfaccia utente di calcolo. Assicurarsi che la casella sia selezionata e immettere il numero di minuti nell'impostazione Termina dopo ___ di minuti di inattività .

È possibile rifiutare esplicitamente la terminazione automatica deselezionando la casella di controllo Terminazione automatica o specificando un periodo di inattività di 0.

Nota

La terminazione automatica è più supportata nelle versioni più recenti di Spark. Le versioni precedenti di Spark presentano limitazioni note che possono comportare la segnalazione imprecisa dell'attività di calcolo. Ad esempio, il calcolo che esegue comandi JDBC, R o di streaming può segnalare un tempo di attività non aggiornato che porta alla terminazione prematura del calcolo. Eseguire l'aggiornamento alla versione di Spark più recente per trarre vantaggio dalle correzioni di bug e dai miglioramenti alla terminazione automatica.

Terminazione imprevista

A volte un calcolo viene terminato in modo imprevisto, non a causa di una terminazione manuale o di una terminazione automatica configurata.

Per un elenco dei motivi di terminazione e dei passaggi di correzione, vedere la Knowledge Base.

Eliminare un ambiente di calcolo

L'eliminazione di un ambiente di calcolo termina il calcolo e ne rimuove la configurazione. Per eliminare un ambiente di calcolo, selezionare Elimina dal menu dell'ambiente di Menu Kebab calcolo.

Avviso

Non è possibile annullare questa azione.

Per eliminare un ambiente di calcolo aggiunto, è necessario prima rimuoverlo da un amministratore.

È anche possibile richiamare l'endpoint dell'API Clusters per eliminare un ambiente di calcolo a livello di codice.

Riavviare un ambiente di calcolo

È possibile riavviare un calcolo terminato in precedenza dall'elenco di calcolo, dalla pagina dei dettagli di calcolo o da un notebook. È anche possibile richiamare l'endpoint dell'API Clusters per avviare un ambiente di calcolo a livello di codice.

Azure Databricks identifica un ambiente di calcolo usando l'ID cluster univoco. Quando si avvia un calcolo terminato, Databricks ricrea il calcolo con lo stesso ID, installa automaticamente tutte le librerie e ricollega i notebook.

Nota

Se si usa un'area di lavoro Versione di valutazione e la versione di valutazione è scaduta, non sarà possibile avviare un calcolo.

Riavviare un ambiente di calcolo per aggiornarlo con le immagini più recenti

Quando si riavvia un ambiente di calcolo, vengono recuperate le immagini più recenti per i contenitori di risorse di calcolo e gli host della macchina virtuale. È importante pianificare i riavvii regolari per le risorse di calcolo a esecuzione prolungata, ad esempio quelle usate per l'elaborazione dei dati di streaming.

È responsabilità dell'utente riavviare regolarmente tutte le risorse di calcolo per mantenere aggiornata l'immagine con la versione più recente dell'immagine.

Importante

Se si abilita il profilo di sicurezza della conformità per l'account o l'area di lavoro, il calcolo a esecuzione prolungata viene riavviato automaticamente in base alle esigenze durante una finestra di manutenzione pianificata. In questo modo si riduce il rischio di un riavvio automatico che interrompe un processo pianificato. È anche possibile forzare il riavvio durante la finestra di manutenzione. Vedere Aggiornamento automatico del cluster.

Esempio di notebook: Trovare un ambiente di calcolo a esecuzione prolungata

Se si è un amministratore dell'area di lavoro, è possibile eseguire uno script che determina per quanto tempo è stato eseguito ogni calcolo e, facoltativamente, riavviarli se sono più vecchi di un numero di giorni specificato. Azure Databricks fornisce questo script come notebook.

Le prime righe dello script definiscono i parametri di configurazione:

  • min_age_output: numero massimo di giorni di esecuzione di un ambiente di calcolo. Il valore predefinito è 1.
  • perform_restart: se True, lo script riavvia qualsiasi calcolo con età maggiore del numero di giorni specificato da min_age_output. Il valore predefinito è False, che identifica le risorse di calcolo a esecuzione prolungata, ma non le riavvia.
  • secret_configuration: sostituire REPLACE_WITH_SCOPE e REPLACE_WITH_KEY con un ambito segreto e un nome di chiave. Per altri dettagli sulla configurazione dei segreti, vedere il notebook.

Avviso

Se si imposta su perform_restartTrue, lo script riavvia automaticamente il calcolo idoneo, che può causare l'esito negativo dei processi attivi e la reimpostazione dei notebook aperti. Per ridurre il rischio di interrompere i processi aziendali critici dell'area di lavoro, pianificare una finestra di manutenzione pianificata e assicurarsi di informare gli utenti dell'area di lavoro.

Identificare e, facoltativamente, riavviare il calcolo a esecuzione prolungata

Ottenere il notebook

Avvio automatico di calcolo per processi e query JDBC/ODBC

Quando un processo assegnato a un ambiente di calcolo terminato è pianificato per l'esecuzione oppure ci si connette a un calcolo terminato da un'interfaccia JDBC/ODBC, il calcolo viene riavviato automaticamente. Vedere Creare un processo e una connessione JDBC.

L'avvio automatico delle risorse di calcolo consente di configurare il calcolo per terminare automaticamente senza richiedere l'intervento manuale per riavviare il calcolo per i processi pianificati. Inoltre, è possibile pianificare l'inizializzazione del calcolo pianificando l'esecuzione di un processo in un ambiente di calcolo terminato.

Prima che un ambiente di calcolo venga riavviato automaticamente, vengono controllate le autorizzazioni di controllo di accesso al processo e di calcolo.

Nota

Se il calcolo è stato creato nella piattaforma Azure Databricks versione 2.70 o precedente, non è previsto alcun avvio automatico: i processi pianificati per l'esecuzione in un ambiente di calcolo terminato avranno esito negativo.

Visualizzare le informazioni di calcolo nell'interfaccia utente di Apache Spark

È possibile visualizzare informazioni dettagliate sui processi Spark selezionando la scheda Interfaccia utente Spark nella pagina dei dettagli di calcolo.

Se si riavvia un calcolo terminato, l'interfaccia utente di Spark visualizza le informazioni per il calcolo riavviato, non le informazioni cronologiche per il calcolo terminato.

Visualizzare i log di calcolo

Azure Databricks offre tre tipi di registrazione delle attività correlate al calcolo:

  • Registri eventi di calcolo, che acquisisce eventi del ciclo di vita di calcolo, ad esempio la creazione, la terminazione e le modifiche alla configurazione.
  • Driver Apache Spark e log di lavoro, che è possibile usare per il debug.
  • Calcolare i log init-script, utili per il debug di script init.

Questa sezione illustra i log eventi di calcolo e i log dei driver e dei ruoli di lavoro. Per informazioni dettagliate sui log init-script, vedere Registrazione degli script Init.

Registri eventi di calcolo

Il registro eventi di calcolo visualizza importanti eventi del ciclo di vita di calcolo attivati manualmente dalle azioni dell'utente o automaticamente da Azure Databricks. Tali eventi influiscono sul funzionamento di un ambiente di calcolo nel suo complesso e sui processi in esecuzione nel calcolo.

Per i tipi di evento supportati, vedere la struttura dei dati dell'API Clusters.

Gli eventi vengono archiviati per 60 giorni, che è paragonabile ad altri tempi di conservazione dei dati in Azure Databricks.

Visualizzare il registro eventi di un ambiente di calcolo

Per visualizzare il registro eventi dell'ambiente di calcolo, selezionare la scheda Registro eventi nelle pagine dei dettagli di calcolo.

Per altre informazioni su un evento, fare clic sulla relativa riga nel log, quindi fare clic sulla scheda JSON per informazioni dettagliate.

Driver di calcolo e log di lavoro

Le istruzioni di stampa diretta e log dai notebook, dai processi e dalle librerie passano ai log dei driver Spark. È possibile accedere a questi file di log dalla scheda Log driver nella pagina dei dettagli di calcolo. Fare clic sul nome di un file di log per scaricarlo.

Questi log hanno tre output:

  • Output standard
  • Errore standard
  • Log4j

Per visualizzare i log del ruolo di lavoro Spark, usare la scheda Interfaccia utente Spark. È anche possibile configurare un percorso di recapito dei log per il calcolo. Sia i log di lavoro che i log di calcolo vengono recapitati alla posizione specificata.

Monitorare le prestazioni

Per monitorare le prestazioni del calcolo di Azure Databricks, Azure Databricks consente di accedere alle metriche dalla pagina dei dettagli di calcolo. Per Databricks Runtime 12.2 e versioni successive, Azure Databricks fornisce l'accesso alle metriche Ganglia . Per Databricks Runtime 13.0 e versioni successive, le metriche di calcolo vengono fornite da Azure Databricks.

È anche possibile configurare un ambiente di calcolo di Azure Databricks per inviare metriche a un'area di lavoro Log Analytics in Monitoraggio di Azure, la piattaforma di monitoraggio per Azure.

È anche possibile installare gli agenti Datadog nei nodi di calcolo per inviare le metriche di Datadog all'account Datadog.

Metriche di calcolo

Le metriche di calcolo sono lo strumento di monitoraggio predefinito per Databricks Runtime 13.0 e versioni successive. Per accedere all'interfaccia utente delle metriche di calcolo, passare alla scheda Metriche nella pagina dei dettagli di calcolo.

È possibile visualizzare le metriche cronologiche selezionando un intervallo di tempo usando il filtro selezione data. Le metriche vengono raccolte ogni minuto. È anche possibile ottenere le metriche più recenti facendo clic sul pulsante Aggiorna . Per altre informazioni, vedere Visualizzare le metriche di calcolo.

Metriche Ganglia

Nota

Le metriche Ganglia sono disponibili solo per Databricks Runtime 12.2 e versioni successive.

Per accedere all'interfaccia utente ganglia, passare alla scheda Metriche nella pagina dei dettagli di calcolo. Le metriche della CPU sono disponibili nell'interfaccia utente ganglia per tutti i runtime di Databricks. Le metriche GPU sono disponibili per il calcolo abilitato per GPU.

Per visualizzare le metriche in tempo reale, fare clic sul collegamento Ganglia UI .To view live metrics, click the Ganglia UI link.

Per visualizzare le metriche cronologiche, fare clic su un file di snapshot. Lo snapshot contiene metriche aggregate per l'ora che precede l'ora selezionata.

Nota

Ganglia non è supportata con i contenitori Docker. Se si usa un contenitore Docker con il calcolo, le metriche Ganglia non saranno disponibili.

Configurare la raccolta di metriche Ganglia

Per impostazione predefinita, Azure Databricks raccoglie le metriche Ganglia ogni 15 minuti. Per configurare il periodo di raccolta, impostare la DATABRICKS_GANGLIA_SNAPSHOT_PERIOD_MINUTES variabile di ambiente usando uno script init o nel spark_env_vars campo nell'API Crea cluster.

Monitoraggio di Azure

È possibile configurare un ambiente di calcolo di Azure Databricks per inviare metriche a un'area di lavoro Log Analytics in Monitoraggio di Azure, la piattaforma di monitoraggio per Azure. Per trovare le istruzioni complete, vedere Monitoraggio di Azure Databricks.

Nota

Se l'area di lavoro di Azure Databricks è stata distribuita nella propria rete virtuale e sono stati configurati gruppi di sicurezza di rete (NSG) per negare tutto il traffico in uscita non richiesto da Azure Databricks, è necessario configurare una regola aggiuntiva in uscita per il tag di servizio "AzureMonitor".

Esempio di notebook: metriche di Datadog

Metriche di Datadog

È possibile installare gli agenti Datadog nei nodi di calcolo per inviare le metriche di Datadog all'account Datadog. Il notebook seguente illustra come installare un agente Datadog in un ambiente di calcolo usando uno script init con ambito di calcolo.

Per installare l'agente Datadog in tutte le risorse di calcolo, gestire lo script init con ambito di calcolo usando un criterio di calcolo.

Installare il notebook script init dell'agente Datadog

Ottenere il notebook

Rimuovere le istanze spot

Poiché le istanze spot possono ridurre i costi, la creazione di risorse di calcolo usando istanze spot anziché istanze su richiesta è un modo comune per eseguire i processi. Tuttavia, le istanze spot possono essere annullate dai meccanismi di pianificazione del provider di servizi cloud. La precedenza delle istanze spot può causare problemi con i processi in esecuzione, tra cui:

  • Errori di recupero casuale
  • Perdita di dati casuali
  • Perdita di dati RDD
  • Errori dei processi

È possibile abilitare la rimozione delle autorizzazioni per risolvere questi problemi. La rimozione delle autorizzazioni sfrutta la notifica che il provider di servizi cloud in genere invia prima che un'istanza spot venga rimossa. Quando un'istanza spot contenente un executor riceve una notifica di precedenza, il processo di rimozione delle autorizzazioni tenterà di eseguire la migrazione di dati casuali e RDD a executor integri. La durata prima della precedenza finale è in genere compresa tra 30 e 2 minuti, a seconda del provider di servizi cloud.

Databricks consiglia di abilitare la migrazione dei dati anche quando la rimozione delle autorizzazioni è abilitata. In genere, la possibilità di errori diminuisce man mano che viene eseguita la migrazione di più dati, tra cui errori di recupero casuale, perdita di dati casuali e perdita di dati RDD. La migrazione dei dati può anche comportare una riduzione del calcolo e dei costi risparmiati.

Nota

La rimozione delle autorizzazioni è un'operazione ottimale e non garantisce che tutti i dati possano essere migrati prima della precedenza finale. La rimozione delle autorizzazioni non può garantire errori di recupero casuale quando le attività in esecuzione recuperano dati casuali dall'executor.

Con la rimozione delle autorizzazioni abilitata, gli errori delle attività causati dalla precedenza dell'istanza spot non vengono aggiunti al numero totale di tentativi non riusciti. Gli errori di attività causati dalla precedenza non vengono conteggiati come tentativi non riusciti perché la causa dell'errore è esterna all'attività e non genererà un errore del processo.

Abilitare la rimozione delle autorizzazioni

Per abilitare la rimozione delle autorizzazioni in un ambiente di calcolo, immettere le proprietà seguenti nella scheda Spark in Opzioni avanzate nell'interfaccia utente della configurazione di calcolo. Per informazioni su queste proprietà, vedere Configurazione di Spark.

  • Per abilitare la rimozione delle autorizzazioni per le applicazioni, immettere questa proprietà nel campo Configurazione Spark:

    spark.decommission.enabled true
    
  • Per abilitare la migrazione casuale dei dati durante la rimozione delle autorizzazioni, immettere questa proprietà nel campo configurazione spark:

    spark.storage.decommission.enabled true
    spark.storage.decommission.shuffleBlocks.enabled true
    
  • Per abilitare la migrazione dei dati della cache RDD durante la rimozione delle autorizzazioni, immettere questa proprietà nel campo Configurazione Spark:

    spark.storage.decommission.enabled true
    spark.storage.decommission.rddBlocks.enabled true
    

    Nota

    Quando la replica RDD Archiviazione Level è impostata su più di 1, Databricks non consiglia di abilitare la migrazione dei dati RDD perché le repliche assicurano che i set di dati RDD non perdano i dati.

  • Per abilitare la rimozione delle autorizzazioni per i ruoli di lavoro, immettere questa proprietà nel campo Variabili di ambiente:

    SPARK_WORKER_OPTS="-Dspark.decommission.enabled=true"
    

Visualizzare lo stato e la perdita delle autorizzazioni nell'interfaccia utente

Per accedere allo stato di rimozione delle autorizzazioni di un ruolo di lavoro dall'interfaccia utente, passare alla scheda Interfaccia utente di calcolo Spark - Master .

Al termine della rimozione delle autorizzazioni, è possibile visualizzare il motivo della perdita dell'executor nella scheda Executor dell'interfaccia utente > Spark nella pagina dei dettagli di calcolo.