Che cos'è l'ambiente di calcolo apache 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 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, in genere entro 5-10 secondi, senza la necessità di configurare manualmente. È anche possibile personalizzare i pool di Apache Spark in base ai requisiti specifici di ingegneria dei dati e data science. La piattaforma consente un'esperienza di analitica ottimizzata e personalizzata.
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.
I pool di avvio hanno cluster Apache Spark sempre on e pronti per le richieste. Usano nodi medi che aumentano dinamicamente in base alle esigenze del processo Spark.
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 Apache 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 Apache Spark. Non viene addebitato il tempo in cui i cluster sono inattivi nel pool.
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 Apache 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.
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 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.
Dimensioni dei nodi
È possibile definire un pool di Spark con dimensioni dei nodi che vanno da un nodo di calcolo di piccole dimensioni (con 4 vCore e 28 GB di memoria) a un doppio nodo di calcolo di grandi dimensioni (con 64 vCore e 400 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 | Memoria |
---|---|---|
Piccola | 4 | 28 GB |
Medio | 8 | 56 GB |
Grande | 16 | 112 GB |
X-Large | 32 | 224 GB |
XX-Large | 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, 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 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 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 minimi. Specificare il numero massimo di nodi per supportare scenari di scalabilità automatica riusciti.