Condividi tramite


Modalità ad elevata concorrenza in Apache Spark per Fabric

La modalità di concorrenza elevata consente ai carichi di lavoro Spark compatibili di condividere una sessione Spark in esecuzione anziché avviare una sessione separata per ogni carico di lavoro. Questa modalità viene comunemente usata per gli scenari di notebook e pipeline in Fabric.

Questo articolo consente di comprendere:

  • Qual è la modalità di concorrenza elevata e quando usarla.
  • Requisiti per la condivisione delle sessioni.
  • Funzionamento della fatturazione per le sessioni condivise.

In modalità standard, ogni attività del notebook o della pipeline avvia la propria sessione Spark. In modalità di concorrenza elevata, un'applicazione Spark ospita più carichi di lavoro assegnando a ogni carico di lavoro il proprio core REPL (Read-eval-Print Loop). Ogni core REPL isola lo stato di esecuzione, quindi le variabili locali in un carico di lavoro non sovrascrivono le variabili in un altro carico di lavoro.

Poiché la sessione condivisa è già in esecuzione, i carichi di lavoro successivi possono iniziare molto più velocemente.

Nota

Per i pool personalizzati con modalità di concorrenza elevata, l'avvio della sessione può essere fino a 36 volte più veloce rispetto a una sessione Spark standard.

Funzionalità principali

Il diagramma evidenzia tre caratteristiche principali della modalità di concorrenza elevata:

  • Sicurezza: la condivisione delle sessioni rimane entro un limite utente singolo.
  • Multitasking: è possibile passare da un notebook all'altro e continuare a funzionare senza attendere la creazione o l'inizializzazione di una nuova sessione Spark.
  • Efficienza dei costi: le sessioni condivise migliorano l'utilizzo delle risorse e riducono i costi di calcolo per i carichi di lavoro di data engineering e data science.

Diagramma che mostra il funzionamento della modalità ad elevata concorrenza in Fabric.

Requisiti di condivisione delle sessioni

La condivisione delle sessioni si applica quando vengono soddisfatte queste condizioni:

  • Le sessioni si trovano all'interno di un limite utente singolo.
  • Le sessioni usano la stessa configurazione predefinita di Lakehouse.
  • Le sessioni usano le stesse impostazioni di calcolo di Spark.

Se un requisito è diverso, Fabric avvia una sessione Spark separata.

Durante l'inizializzazione della sessione, Fabric crea un core REPL. Man mano che i nuovi carichi di lavoro vengono aggiunti alla sessione condivisa, gli executor vengono allocati usando la pianificazione FAIR sui core REPL per ridurre il rischio di carestia.

Comportamento di fatturazione

Quando si usa la modalità di concorrenza elevata, viene fatturata solo l'attività del notebook o della pipeline di avvio che avvia l'applicazione Spark condivisa. Le sessioni successive che condividono la stessa sessione spark non comportano fatturazione separata.

Example

  • Un utente avvia Notebook 1, che avvia una sessione Spark in modalità di concorrenza elevata.
  • La stessa sessione viene quindi condivisa da Notebook 2, Notebook 3, Notebook 4 e Notebook 5.
  • In questo caso, solo notebook 1 viene fatturato per il calcolo Spark.
  • I notebook condivisi (da 2 a 5) non vengono fatturati singolarmente.

Questo comportamento si riflette anche nelle metriche della capacità, in cui l'utilizzo viene segnalato rispetto al notebook di avvio.

Nota

Lo stesso comportamento di fatturazione si applica alle attività della pipeline. Viene addebitato solo il notebook o l'attività che ha avviato la sessione Spark.