Che cos'è l'ambiente di calcolo Spark in Microsoft Fabric?

Si applica a: Ingegneria dei dati e data science in Microsoft Fabric

Microsoft Fabric Ingegneria dei dati e le esperienze di data science operano su una piattaforma di calcolo Spark completamente gestita. Questa piattaforma è progettata per offrire velocità ed efficienza ineguagliabili. Con i pool di avvio, è possibile prevedere l'inizializzazione rapida della sessione Spark, in genere entro 5-10 secondi, senza bisogno di configurare manualmente. È anche possibile personalizzare i pool di Spark in base ai requisiti specifici di ingegneria dei dati e data science. La piattaforma consente un'esperienza di analisi ottimizzata e personalizzata.

Immagine di una piattaforma di calcolo Spark con pool di avvio e pool di Spark personalizzati.

Pool di avvio

I pool di avvio sono un modo semplice e veloce per usare Spark nella piattaforma Microsoft Fabric in pochi secondi. È possibile usare immediatamente le sessioni Spark, invece di attendere che Spark configuri automaticamente i nodi, che consente di eseguire altre operazioni con i dati e ottenere informazioni più rapide.

Immagine di una tabella che mostra la configurazione del pool di avvio.

I pool di avvio hanno cluster Spark sempre on e pronti per le richieste. Usano nodi medi che aumentano dinamicamente in base alle esigenze del processo Spark.

Diagramma che mostra la progettazione generale dei pool di avvio.

I pool di avvio hanno anche impostazioni predefinite che consentono di installare rapidamente le librerie senza rallentare l'ora di inizio della sessione. Tuttavia, se si vogliono usare proprietà o librerie Spark aggiuntive personalizzate dalle impostazioni dell'area di lavoro o della capacità, Spark richiede più tempo per ottenere automaticamente i nodi. Quando si tratta di fatturazione e consumo di capacità, viene addebitato il consumo di capacità quando si avvia l'esecuzione del notebook o della definizione del processo Spark. Non viene addebitato il tempo in cui i cluster sono inattivi nel pool.

Diagramma che mostra le fasi generali della fatturazione dei pool di avvio.

Ad esempio, se si invia un processo del notebook a un pool di avvio, viene addebitato solo per il periodo di tempo in cui è attiva la sessione del notebook. Il tempo fatturato non include il tempo di inattività o il tempo impiegato per personalizzare la sessione con il contesto Spark.

Pool di Spark

Un pool di Spark è un modo per indicare a Spark il tipo di risorse necessarie per le attività di analisi dei dati. È possibile assegnare un nome al pool di Spark e scegliere il numero e le dimensioni dei nodi (i computer che eseguono il lavoro). È anche possibile indicare a Spark come modificare il numero di nodi a seconda della quantità di lavoro disponibile. La creazione di un pool di Spark è gratuita; si paga solo quando si esegue un processo Spark nel pool e quindi Spark configura automaticamente i nodi.

Se non si usa il pool di Spark per 2 minuti dopo la scadenza della sessione, il pool di Spark verrà deallocato. Questo periodo di scadenza della sessione predefinito è impostato su 20 minuti ed è possibile modificarlo se necessario. Gli amministratori dell'area di lavoro possono anche creare pool di Spark personalizzati per l'area di lavoro e impostarli come opzione predefinita per altri utenti. In questo modo è possibile risparmiare tempo ed evitare di configurare un nuovo pool di Spark ogni volta che si esegue un notebook o un processo Spark. L'avvio dei pool di Spark personalizzati richiede circa tre minuti, perché Spark deve ottenere i nodi da Azure.

È anche possibile creare pool spark a nodo singolo impostando il numero minimo di nodi su uno, in modo che il driver e l'executor vengano eseguiti in un singolo nodo dotato di disponibilità elevata ripristinabile ed è adatto per carichi di lavoro di piccole dimensioni.

Le dimensioni e il numero di nodi che è possibile avere nel pool di Spark personalizzato dipendono dalla capacità di Microsoft Fabric. La capacità è una misura della potenza di calcolo che è possibile usare in Azure. Un modo per pensare è che due VCore Spark (un'unità di potenza di calcolo per Spark) è uguale a un'unità di capacità. Ad esempio, uno SKU di capacità di Infrastruttura F64 ha 64 unità di capacità, che equivale a 128 VCore Spark. È possibile usare questi VCore Spark per creare nodi di dimensioni diverse per il pool di Spark personalizzato, purché il numero totale di VCore Spark non superi 128.

I pool di Spark vengono fatturati come pool di avvio; non si paga per i pool di Spark personalizzati creati, a meno che non sia stata creata una sessione Spark attiva per l'esecuzione di un notebook o una definizione di processo Spark. La fatturazione viene addebitata solo per la durata delle esecuzioni del processo. Non vengono fatturate fasi come la creazione e la deallocazione del cluster al termine del processo.

Diagramma che mostra le fasi generali della fatturazione dei pool personalizzati.

Ad esempio, se si invia un processo notebook a un pool di Spark personalizzato, viene addebitato solo il periodo di tempo in cui la sessione è attiva. La fatturazione per la sessione del notebook si arresta dopo che la sessione Spark è stata arrestata o scaduta. Non vengono addebitati i costi per l'acquisizione delle istanze del cluster dal cloud o per il tempo impiegato per l'inizializzazione del contesto Spark.

Possibili configurazioni del pool personalizzato per F64 in base all'esempio precedente:

SKU della capacità dell'infrastruttura Unità di capacità VCore Spark Dimensioni nodo Numero massimo di nodi
F64 64 384 Piccola 96
F64 64 384 Medio 48
F64 64 384 Grande 24
F64 64 384 X-Large 12
F64 64 384 XX-Large 6

Nota

Per creare pool personalizzati, sono necessarie autorizzazioni di amministratore per l'area di lavoro. E l'amministratore della capacità di Microsoft Fabric deve concedere le autorizzazioni per consentire agli amministratori dell'area di lavoro di ridimensionare i pool di Spark personalizzati. Per altre informazioni, vedere Introduzione ai pool di Spark personalizzati in Fabric

Nodi

Un'istanza del pool di Apache Spark è costituita da un nodo head e da nodi di lavoro, può avviare almeno un nodo in un'istanza di Spark. Il nodo head esegue servizi di gestione aggiuntivi, ad esempio Livy, Yarn Resource Manager, Zookeeper e il driver Spark. Tutti i nodi eseguono servizi come Node Agent e Yarn Node Manager. Tutti i nodi di lavoro eseguono il servizio Spark Executor.

Dimensioni dei nodi

Un pool di Spark può essere definito con dimensioni dei nodi che vanno da un nodo di calcolo di piccole dimensioni (con 4 vCore e 32 GB di memoria) a un nodo di calcolo di grandi dimensioni (con 64 vCore e 512 GB di memoria per nodo). Le dimensioni del nodo possono essere modificate dopo la creazione del pool, anche se la sessione attiva deve essere riavviata.

Dimensione vCore Memory
Piccola 4 32 GB
Medio 8 64 GB
Grande 16 128 GB
X-Large 32 256 GB
XX-Large 64 512 GB

Autoscale

La scalabilità automatica per i pool di Apache Spark consente di aumentare e ridurre automaticamente le risorse di calcolo in base alla quantità di attività. Quando si abilita la funzionalità di scalabilità automatica, si imposta il numero minimo e massimo di nodi da ridimensionare. Quando si disabilita la funzionalità di scalabilità automatica, il numero di nodi impostati rimane fisso. È possibile modificare questa impostazione dopo la creazione del pool, anche se potrebbe essere necessario riavviare l'istanza.

Nota

Per impostazione predefinita, spark.yarn.executor.decommission.enabled è impostato su true, consentendo l'arresto automatico dei nodi sottoutilizzati per ottimizzare l'efficienza di calcolo. Se si preferisce un ridimensionamento meno aggressivo, questa configurazione può essere impostata su false

Allocazione dinamica

L'allocazione dinamica consente all'applicazione Spark di richiedere più executor se le attività superano il carico che gli executor correnti possono sopportare. Rilascia anche gli executor al termine dei processi e se l'applicazione Spark passa allo stato di inattività. Gli utenti aziendali spesso trovano difficile ottimizzare le configurazioni dell'executor perché sono molto diverse in diverse fasi di un processo di esecuzione dei processi Spark. Queste configurazioni dipendono anche dal volume di dati elaborati, che cambiano di volta in volta. È possibile abilitare l'allocazione dinamica dell'opzione executor come parte della configurazione del pool, che consente l'allocazione automatica di executor all'applicazione Spark in base ai nodi disponibili nel pool di Spark.

Quando si abilita l'opzione di allocazione dinamica per ogni applicazione Spark inviata, il sistema riserva executor durante il passaggio di invio del processo in base ai nodi massimi. Specificare il numero massimo di nodi per supportare scenari di scalabilità automatica riusciti.