Automatizzare il ridimensionamento dei pool di Apache Spark in Azure Synapse Analytics

Completato

In un pool di Apache Spark è possibile configurare una dimensione fissa quando si disabilita la scalabilità automatica. Quando si abilita la scalabilità automatica, è possibile impostare un numero minimo e massimo di nodi per controllare la scala desiderata.

Dopo aver abilitato la scalabilità automatica, Azure Synapse Analytics monitorerà le risorse del carico e aumenterà o ridurrà il numero di nodi. Verrà eseguito il monitoraggio continuo di utilizzo della CPU, memoria in sospeso, CPU disponibile, memoria disponibile e memoria usata per ogni nodo, ovvero delle metriche necessarie per decidere se aumentare o ridurre le prestazioni. Queste metriche vengono controllate ogni 30 secondi e in base ai valori vengono prese le decisioni sul ridimensionamento. Per l'uso di questa funzionalità non sono previsti costi aggiuntivi.

Di seguito è riportata una tabella che mostra le metriche controllate e raccolte in seguito all'abilitazione della scalabilità automatica del pool di Apache Spark nell'istanza di Azure Synapse:

Metrico Descrizione
Total Pending CPU (Totale CPU in sospeso) Numero totale di core necessari per avviare l'esecuzione di tutti i nodi in sospeso.
Total Pending Memory (Totale memoria in sospeso) Memoria totale (in MB) necessaria per avviare l'esecuzione di tutti i nodi in sospeso.
Total Free CPU (Totale CPU disponibile) Somma di tutti i core inutilizzati nei nodi attivi.
Total Free Memory (Totale memoria disponibile) Somma della memoria inutilizzata (in MB) nei nodi attivi.
Used Memory per Node (Memoria utilizzata per nodo) Carico su un nodo. Un nodo in cui sono usati 10 GB di memoria è considerato come sottoposto a un carico superiore rispetto a un nodo del ruolo di lavoro con 2 GB di memoria usata.

Quando si esaminano le condizioni di scalabilità basate sul carico, la funzionalità di scalabilità automatica genererà una richiesta di scalabilità basata sulle metriche descritte nella tabella seguente:

Aumentare Riduzione
Il totale CPU in sospeso è maggiore del totale CPU disponibile per più di 1 minuto. Il totale CPU in sospeso è minore del totale CPU disponibile per più di 2 minuti.
Il totale memoria in sospeso è maggiore del totale memoria disponibile per più di 1 minuto. Il totale memoria in sospeso è minore del totale memoria disponibile per più di 2 minuti.

Quando la scalabilità automatica aumenta le prestazioni, calcola il numero di nodi necessari per soddisfare i requisiti di CPU e memoria. Successivamente genera le richieste di aumento delle prestazioni e aggiunge il numero di nodi necessari per eseguire il processo.

Nel caso in cui la scalabilità automatica esegua l'azione di riduzione delle prestazioni, la decisione si basa sul numero di executor e di istanze primarie dell'applicazione per ogni nodo e sui requisiti di CPU e memoria. La funzionalità di scalabilità automatica genererà quindi la richiesta di rimuovere alcuni nodi. La funzionalità di scalabilità automatica controllerà anche quali nodi sono candidati per la rimozione in base all'esecuzione del processo corrente. L'operazione di riduzione prevede prima la disattivazione e quindi il ritiro dei nodi dal cluster.

Per iniziare a usare la funzionalità di scalabilità automatica, è necessario seguire questa procedura:

Creare un pool di Apache Spark serverless con scalabilità automatica

Per abilitare la funzionalità di scalabilità automatica, completare la procedura seguente durante il normale processo di creazione del pool di Apache Spark:

  1. Nella scheda Informazioni di base selezionare la casella di controllo Abilita scalabilità automatica.

  2. Immettere i valori desiderati per le proprietà seguenti:

    • Numero minimo di nodi.
    • Numero massimo di nodi.

Il numero iniziale di nodi corrisponderà al numero minimo. Questo valore definisce le dimensioni iniziali dell'istanza al momento della creazione. Il numero minimo di nodi non può essere inferiore a tre.

Quando si prendono in esame le procedure consigliate da usare per la funzionalità di scalabilità automatica, considerare la latenza come parte delle operazioni di aumento o riduzione delle prestazioni. Potrebbero essere necessari da 1 a 5 minuti per il completamento delle operazioni di ridimensionamento, che si tratti di aumentare o ridurre le prestazioni. Inoltre, quando si riducono le prestazioni, i nodi verranno prima messi in stato di rimozione, in modo che non vengano avviati nuovi executor sul nodo. I processi ancora in esecuzione continueranno a essere eseguiti e terminati, ma i processi in sospeso saranno in stato di attesa prima di essere pianificati come normali, ma con un minor numero di nodi.