Condividi tramite


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

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

Le esperienze di ingegneria dei dati e data science di Microsoft Fabric operano su una piattaforma di calcolo Apache Spark completamente gestita. Questa piattaforma è progettata per offrire velocità ed efficienza ineguagliabili. Con i pool di avvio, è possibile prevedere un'inizializzazione rapida della sessione apache Spark, generalmente entro 5-10 secondi, senza necessità di configurazione manuale. È anche possibile personalizzare i pool di Apache Spark in base a 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, per cui è possibile eseguire altre operazioni con i dati e ottenere informazioni dettagliate in maniera più rapida.

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

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

Diagramma che mostra la progettazione di alto livello dei pool di avvio.

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

Diagramma che mostra le fasi di alto livello nella fatturazione dei pool di avvio.

Ad esempio, se si invia un processo del notebook a un pool di avvio, viene fatturato solo il periodo di tempo in cui la sessione del notebook è attiva. 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 da eseguire. 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 di pool di Spark personalizzati richiede circa tre minuti, perché Spark deve ottenere i nodi da Azure.

È anche possibile creare pool di 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 in un 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 concepirla è che due VCore Apache Spark (un'unità di potenza di calcolo per Spark) equivalgono a un'unità di capacità. Ad esempio, uno SKU di capacità di Fabric F64 ha 64 unità di capacità, che equivalgono 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 sia superiore a 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 processo Spark. La fatturazione avviene solo per la durata delle esecuzioni del processo. La fatturazione non avviene per le fasi come la creazione e la deallocazione del cluster al termine del processo.

Diagramma che mostra le fasi di alto livello nella 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 tale sessione del notebook si arresta dopo che la sessione Spark è stata arrestata o è scaduta. Non viene addebitato il tempo per l’acquisizione delle istanze del cluster dal cloud o per tempo impiegato per l'inizializzazione del contesto Spark.

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

SKU di capacità di Fabric Unità di capacità VCore Spark Dimensioni nodo Numero massimo di nodi
F64 64 384 Piccolo 96
F64 64 384 Medio 48
F64 64 384 Grande 24
F64 64 384 Molto grande 12
F64 64 384 Grandissimo 6

Nota

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

Nodi

L'istanza del pool di Apache Spark è costituita da un nodo head e nodi di lavoro, a partire da 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 Apache Spark Executor.

Dimensioni dei nodi

È possibile definire un pool di Spark con dimensioni dei nodi che variano da un nodo di calcolo di piccole dimensioni con 4 vCore e 28 GB di memoria fino a un nodo di calcolo grandissimo con 64 vCore e 400 GB di memoria per nodo. È possibile modificare le dimensioni dei nodi dopo la creazione del pool, anche se a vole è necessario riavviare la sessione attiva.

Dimensione vCore Memoria
Piccolo 4 28 GB
Medio 8 56 GB
Grande 16 112 GB
Molto grande 32 224 GB
Grandissimo 64 400 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, impostare il numero minimo e massimo di nodi da ridimensionare. Quando si disabilita la funzionalità di scalabilità automatica, il numero di nodi impostati rimane fisso. Questa impostazione può essere modificata dopo la creazione del pool, anche se a volte 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 Apache 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 nelle diverse fasi di un processo di esecuzione dei processi Spark. Queste configurazioni dipendono anche dal volume di dati elaborati che cambia di volta in volta. È possibile abilitare l'opzione di allocazione dinamica degli executor come parte della configurazione del pool, che abilita l'allocazione automatica degli 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 al numero minimo di nodi. Specificare il numero massimo di nodi per supportare scenari di scalabilità automatica efficienti.