Configurazioni del pool apache Spark in Azure Synapse Analytics

Un pool Spark è un set di metadati che definisce i requisiti delle risorse di calcolo e le caratteristiche di comportamento associate quando viene creata un'istanza di Spark. Queste caratteristiche includono ma non sono limitate al nome, al numero di nodi, alle dimensioni del nodo, al comportamento di ridimensionamento e al tempo da vivere. Un pool Spark in sé non usa alcuna risorsa. Non sono previsti costi per la creazione di pool Spark. Gli addebiti vengono addebitati solo dopo l'esecuzione di un processo Spark nel pool spark di destinazione e l'istanza di Spark viene creata un'istanza su richiesta.

Per informazioni su come creare un pool di Spark e visualizzarne tutte le proprietà, vedere Creare un pool di Apache Spark (anteprima) in Synapse Analytics usando gli strumenti Web.

Calcolo isolato

L'opzione Calcolo isolato offre maggiore sicurezza alle risorse di calcolo Spark dai servizi non attendibili dedicando la risorsa di calcolo fisica a un singolo cliente. L'opzione di calcolo isolata è più adatta per i carichi di lavoro che richiedono un livello elevato di isolamento dai carichi di lavoro di altri clienti per motivi che includono requisiti di conformità e normative. L'opzione Isola calcolo è disponibile solo con le dimensioni del nodo XXXLarge (80 vCPU/504 GB) e disponibili solo nelle aree seguenti. L'opzione di calcolo isolata può essere abilitata o disabilitata dopo la creazione del pool anche se l'istanza potrebbe essere riavviata. Se si prevede di abilitare questa funzionalità in futuro, assicurarsi che l'area di lavoro Synapse venga creata in un'area di calcolo isolata supportata.

  • Stati Uniti orientali
  • Stati Uniti occidentali 2
  • Stati Uniti centro-meridionali
  • US Gov Arizona
  • US Gov Virginia

Nodi

L'istanza del pool di Apache Spark è costituita da un nodo head e da due o più nodi di lavoro con almeno tre nodi in un'istanza di Spark. Il nodo head esegue servizi di gestione aggiuntivi, ad esempio Livy, Yarn Resource Manager, Zookeeper e il driver Spark. Tutti i nodi eseguono servizi, ad esempio Node Agent e Yarn Node Manager. Tutti i nodi di lavoro eseguono il servizio Spark Executor.

Dimensioni dei nodi

Un pool Spark può essere definito con dimensioni del nodo che vanno da un nodo di calcolo small con 4 vCore e 32 GB di memoria fino a un nodo di calcolo XXLarge con 64 vCore e 432 GB di memoria per nodo. Le dimensioni dei nodi possono essere modificate dopo la creazione del pool, anche se potrebbe essere necessario riavviare l'istanza.

Dimensione vCore Memoria
Small 4 32 GB
Medio 8 64 GB
Grande 16 128 GB
XLarge 32 256 GB
XXLarge 64 432 GB
XXX Large (calcolo isolato) 80 504 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 la funzionalità di scalabilità automatica è abilitata, si imposta il numero minimo e il numero massimo di nodi da ridimensionare. Quando la funzionalità di scalabilità automatica è disabilitata, il numero di nodi impostato rimarrà fisso. Questa impostazione può essere modificata dopo la creazione del pool anche se l'istanza potrebbe essere riavviata.

Archiviazione del pool elastico

I pool apache Spark supportano ora l'archiviazione del pool elastico. L'archiviazione del pool elastico consente al motore Spark di monitorare l'archiviazione temporanea del nodo di lavoro e collegare dischi aggiuntivi se necessario. I pool di Apache Spark usano l'archiviazione su disco temporanea mentre il pool viene creata un'istanza. I processi Spark scrivono output di mapping casuali, riscrive i dati e si distribuisce dati nei dischi delle macchine virtuali locali. Esempi di operazioni che possono usare il disco locale sono ordinati, memorizzati nella cache e persistenti. Quando lo spazio su disco delle macchine virtuali temporanee viene esaurito, i processi Spark potrebbero non riuscire a causa di un errore "Out of Disk Space" (java.io.IOException: nessuna spazio lasciato nel dispositivo). Con gli errori "Out of Disk Space", gran parte del carico per evitare che i processi non riescano a passare al cliente per riconfigurare i processi Spark (ad esempio, modificare il numero di partizioni) o i cluster (ad esempio, aggiungere altri nodi al cluster). Questi errori potrebbero non essere coerenti e l'utente potrebbe terminare l'esperimento in modo pesante eseguendo processi di produzione. Questo processo può essere costoso per l'utente in più dimensioni:

  • Tempo perso. I clienti devono sperimentare pesantemente le configurazioni dei processi tramite la versione di valutazione e l'errore e si prevede di comprendere le metriche interne di Spark per prendere la decisione corretta.
  • Risorse sprecate. Poiché i processi di produzione possono elaborare una quantità variabile di dati, i processi Spark possono non determinare in modo deterministico se le risorse non vengono sottoposte a provisioning eccessivo. Si consideri, ad esempio, il problema dell'inclinazione dei dati, che può causare un numero maggiore di nodi che richiedono più spazio su disco rispetto ad altri. Attualmente in Synapse, ogni nodo in un cluster ottiene le stesse dimensioni dello spazio su disco e l'aumento dello spazio su disco in tutti i nodi non è una soluzione ideale e porta a enormi rifiuti.
  • Rallentamento dell'esecuzione del processo. Nello scenario ipotetico in cui viene risolto il problema tramite la scalabilità automatica dei nodi (presupponendo che i costi non siano un problema per il cliente finale), l'aggiunta di un nodo di calcolo è ancora costosa (richiede alcuni minuti) anziché l'aggiunta dell'archiviazione (richiede alcuni secondi).

Non è necessaria alcuna azione da parte dell'utente, oltre a visualizzare meno errori di processo.

Nota

Azure Synapse archiviazione del pool elastico è attualmente in anteprima pubblica. Durante l'anteprima pubblica non è previsto alcun addebito per l'uso dell'archiviazione del pool elastico.

Pausa automatica

La funzionalità di sospensione automatica rilascia le risorse dopo un periodo di inattività impostato, riducendo il costo complessivo di un pool apache Spark. Il numero di minuti di tempo di inattività può essere impostato una volta abilitata questa funzionalità. La funzionalità di sospensione automatica è indipendente dalla funzionalità di scalabilità automatica. Le risorse possono essere sospese se la scalabilità automatica è abilitata o disabilitata. Questa impostazione può essere modificata dopo la creazione del pool anche se è necessario riavviare le sessioni attive.

Passaggi successivi