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.

In una sessione Spark standard ogni elemento viene eseguito nella propria sessione. In modalità a concorrenza elevata, un'applicazione Spark può ospitare più carichi di lavoro indipendenti in core REPL (Read-eval-Print Loop) separati. Ogni core REPL isola lo stato di esecuzione in modo che le variabili locali di un carico di lavoro non sovrascrivano le variabili da 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.

Come funziona in pratica

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

  • Sicurezza: la condivisione delle sessioni si trova sempre all'interno di un singolo limite utente.
  • Multitasking: è possibile passare da un notebook all'altro e continuare a funzionare senza attendere la creazione o l'inizializzazione di una nuova sessione Spark.
  • Conveniente: 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.

Quando le sessioni possono essere condivise

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

  • Le sessioni si trovano all'interno di un singolo limite utente.
  • Le sessioni usano la stessa configurazione lakehouse predefinita.
  • Le sessioni usano le stesse proprietà di calcolo spark.

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 la sessione 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.