Condividi tramite


Panoramica dell'ambiente di calcolo apache Spark in Microsoft Fabric

Si applica a:✅ Ingegneria dei dati e data science di Fabric

Fabric Data Engineering and Data Science viene eseguito in una piattaforma di calcolo Apache Spark completamente gestita. I pool di avvio offrono un avvio rapido della sessione, in genere da 5 a 10 secondi, senza alcuna configurazione manuale. I pool di Spark personalizzati consentono di ottimizzare le dimensioni del nodo, il comportamento di ridimensionamento e altre impostazioni di calcolo per il carico di lavoro. In breve, i pool di avvio offrono Spark rapido e preconfigurato, mentre i pool di Spark personalizzati offrono un controllo e una flessibilità più approfonditi.

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

Pool iniziali

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 con sessioni sempre attive e pronte 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.

Quando si usa un pool di avvio senza dipendenze aggiuntive della libreria o proprietà Spark personalizzate, la sessione viene in genere avviata da 5 a 10 secondi. Questo avvio rapido è possibile perché il cluster è già in esecuzione e non richiede tempo di provisioning.

Nota

I pool di avvio supportano solo dimensioni medie dei nodi. Se si selezionano dimensioni di nodo diverse o si personalizzano le configurazioni di calcolo, Fabric usa l'avvio della sessione su richiesta, che può richiedere da 2 a 5 minuti.

Esistono tuttavia diversi scenari in cui l'avvio della sessione potrebbe richiedere più tempo.

Librerie personalizzate o proprietà di Spark: se sono state configurate librerie o impostazioni personalizzate nell'ambiente in uso, Spark deve personalizzare la sessione dopo la creazione. Questo processo può aggiungere circa 30 secondi a 5 minuti al tempo di avvio, a seconda del numero e delle dimensioni delle dipendenze della libreria.

I pool di avvio nell'area sono completamente usati: in rari casi, i pool di avvio di un'area potrebbero essere temporaneamente esauriti a causa di traffico elevato. In questo caso, Fabric attiva un nuovo cluster per soddisfare la richiesta, che richiede circa da 2 a 5 minuti. Quando il nuovo cluster è disponibile, viene avviata la sessione. Se sono disponibili anche librerie personalizzate da installare, aggiungere altri 30 secondi a 5 minuti necessari per la personalizzazione.

Funzionalità avanzate di rete o sicurezza (collegamenti privati o reti virtuali gestite): quando l'area di lavoro include funzionalità di rete, ad esempio collegamenti privati tenant o reti virtuali gestite, i pool di avvio non sono supportati. In questo caso, Fabric deve creare un cluster su richiesta, che aggiunge da 2 a 5 minuti in più all'ora di inizio della sessione. Se si hanno anche dipendenze di libreria, lo step di personalizzazione può aggiungere altri 30 secondi a 5 minuti.

Ecco alcuni scenari di esempio per illustrare i potenziali orari di inizio:

Sceneggiatura Tempo di avvio tipico
impostazioni predefinite, nessuna libreria 5 - 10 secondi
Impostazioni predefinite e dipendenze della libreria 5 – 10 secondi + 30 secondi - 5 minuti (per la configurazione della libreria)
Traffico elevato nell'area, nessuna libreria 2 - 5 minuti
traffico elevato + dipendenze di libreria 2 – 5 minuti + 30 secondi - 5 minuti (per le librerie)
sicurezza di rete (collegamenti privati/rete virtuale), nessuna libreria 2 - 5 minuti
sicurezza di rete e dipendenze della libreria 2 – 5 minuti + 30 secondi - 5 minuti (per le librerie)

Riguardo alla fatturazione e al consumo della capacità, viene addebitato per il consumo della capacità quando si avvia l'esecuzione del notebook o della definizione del processo Apache Spark. Non ti viene addebitato il tempo in cui i cluster sono inattivi nel pool.

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. Per ulteriori informazioni, vedere Configurare i pool iniziali in Fabric.

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 dei 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 restaurabile, adatto a carichi di lavoro ridotti.

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. Un modo per pensarci è che due vCore Apache Spark (un'unità di calcolo Spark) sono uguali a un'unità di capacità.

Nota

In Apache Spark gli utenti ottengono due vCore Apache Spark per ogni unità di capacità che riservano come parte dello SKU. Un'unità di capacità = due vCore Spark. Ad esempio, F64 fornisce 128 vCore Spark e un moltiplicatore burst 3x aumenta questo valore a 384 vCore Spark.

Ad esempio, un SKU della capacità Fabric F64 ha 64 unità di capacità, equivalenti a 384 unità VCore Spark (64 * 2 * moltiplicatore Burst 3X). È 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 384.

I pool Spark sono fatturati come i pool iniziali; non si paga per i pool Spark personalizzati creati, a meno che non sia stata creata una sessione Spark attiva per l'esecuzione di un notebook o un'attività Spark. La fatturazione avviene solo per la durata dell'esecuzione del processo. Non riceverai fatture per fasi, come la creazione e deallocazione del cluster, dopo il completamento del lavoro.

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

Ad esempio, se si invia un job del notebook a un pool di Spark personalizzato, verrà addebitato solo il 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 necessario per l’acquisizione delle istanze del cluster dal cloud né il tempo impiegato per l'inizializzazione del contesto Spark.

Possibili configurazioni del pool personalizzato per F64 in base all'esempio precedente. Le dimensioni dei nodi più piccole hanno una capacità distribuita in più nodi, quindi il numero massimo di nodi è superiore. Mentre i nodi più grandi sono ricchi di risorse, quindi sono necessari meno nodi:

Capacità SKU del Fabric Unità di capacità Numero massimo di VCore Spark con fattore di burst Dimensioni nodo Numero massimo di nodi
F64 64 384 Piccola 96
F64 64 384 Intermedio 48
F64 64 384 Grande 24
F64 64 384 X-Large 12
F64 64 384 XXL 6

Nota

Per creare pool personalizzati, sono necessarie autorizzazioni di amministratore per l'area di lavoro. L'amministratore della capacità Microsoft Fabric deve anche concedere autorizzazioni che consentono agli amministratori dell'area di lavoro di ridimensionare 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 uno o più nodi di lavoro. Un'istanza di Spark può iniziare con un minimo di un nodo. Il nodo head esegue servizi di gestione come Livy, YARN Resource Manager, ZooKeeper e il driver Apache Spark. Tutti i nodi eseguono servizi come Node Agent e YARN Node Manager. Tutti i nodi di lavoro eseguono il servizio Apache Spark Executor.

Nota

In Fabric il rapporto tra nodi ed executor è sempre 1:1. Quando si configura un pool, un nodo è dedicato al driver e i nodi rimanenti vengono usati per gli executor. L'unica eccezione è in una configurazione a nodo singolo, in cui le risorse per il driver e l'executor vengono dimezzate.

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 dimensioni aggiuntive aggiuntive (con 64 vCore e 512 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.

Misura vCore Memoria
Piccola 4 32GB
Intermedio 8 64 GB
Grande 16 128 GB
X-Large 32 256 GB
XXL 64 512 gigabyte

Nota

Le dimensioni dei nodi X-Large e XX-Large sono consentite solo per SKU di Fabric non di prova.

Scalabilità automatica

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 su cui scalare. 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 per ogni applicazione Spark inviata l'opzione di allocazione dinamica, il sistema riserva gli executor nel 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.