Come funzionano gli endpoint di AWS Glue sviluppo con i notebook SageMaker - AWS Glue

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Come funzionano gli endpoint di AWS Glue sviluppo con i notebook SageMaker

Uno dei modi più comuni per accedere agli endpoint di sviluppo consiste nell'utilizzare Jupyter sui notebook. SageMaker Il notebook Jupyter è un'applicazione web open source ampiamente utilizzata nella visualizzazione, nell'analisi dei dati, nel machine learning, ecc. Un AWS Glue SageMaker notebook offre un'esperienza con i notebook Jupyter con endpoint di sviluppo. AWS Glue Nel AWS Glue SageMaker notebook, l'ambiente notebook Jupyter è preconfigurato con un plug-in Jupyter open source per SparkMagicinviare i lavori Spark a un cluster Spark remoto. Apache Livy è un servizio che consente l'interazione con un cluster Spark remoto tramite una REST API. Nel AWS Glue SageMaker notebook, SparkMagic è configurato per richiamare l'API REST su un server Livy in esecuzione su un endpoint di sviluppo. AWS Glue

Il seguente flusso di testo spiega come funziona ogni componente:

AWS Glue SageMaker notebook: (Jupyter → SparkMagic) → (rete) → endpoint di AWS Glue sviluppo: (Apache Livy → Apache Spark)

Una volta eseguito lo script Spark scritto in ogni paragrafo su un notebook Jupyter, il codice Spark viene inviato al server Livy tramite SparkMagic, quindi un job Spark chiamato «Livy-session-n» viene eseguito sul cluster Spark. Questo processo è denominato sessione Livy. Il processo Spark verrà eseguito mentre la sessione del notebook è attiva. Il processo Spark verrà terminato quando il kernel Jupyter viene arrestato dal notebook o quando la sessione è scaduta. Viene avviato un processo Spark per ogni file notebook (.ipynb).

È possibile utilizzare un singolo endpoint di sviluppo con più istanze di notebook. AWS Glue SageMaker È possibile creare più file di notebook in ogni istanza del SageMaker notebook. Quando apri un file di notebook ed esegui i paragrafi, viene avviata una sessione Livy per ogni file del taccuino sul cluster Spark tramite. SparkMagic Ogni sessione Livy corrisponde a un singolo processo Spark.

Comportamento predefinito per endpoint e notebook di AWS Glue sviluppo SageMaker

I processi Spark vengono eseguiti in base alla configurazione di Spark. Esistono diversi modi per impostare la configurazione di Spark (ad esempio, la configurazione del cluster Spark, la configurazione SparkMagic di Spark, ecc.).

Per impostazione predefinita, Spark alloca le risorse del cluster a una sessione Livy in base alla configurazione del cluster Spark. Nell'endpoint di sviluppo AWS Glue, la configurazione del cluster dipende dal tipo di worker. Ecco una tabella che spiega le configurazioni comuni per tipo di worker.

Standard G.1X G.2X
spark.driver.memory 5G 10G 20G
spark.executor.memory 5G 10G 20G
spark.executor.cores 4 8 16
spark.dynamicAllocation.enabled TRUE TRUE TRUE

Il numero massimo di executor Spark viene calcolato automaticamente in base alla combinazione di DPU (o NumberOfWorkers) e il tipo di dipendente.

Standard G.1X G.2X
Il numero massimo di executor Spark (DPU - 1) * 2 - 1 (NumberOfWorkers - 1) (NumberOfWorkers - 1)

Ad esempio, se l'endpoint di sviluppo ha 10 worker e il tipo di worker è G.1X, allora si avranno 9 executor Spark e l'intero cluster avrà 90G di memoria dell'executor, poiché ogni executor avrà 10G di memoria.

Indipendentemente dal tipo di worker specificato, verrà attivata l'allocazione dinamica delle risorse Spark. Se un set di dati è abbastanza grande, Spark potrebbe allocare tutti gli executor a una singola sessione Livy poiché spark.dynamicAllocation.maxExecutors non è configurata per impostazione predefinita. Ciò significa che altre sessioni Livy sullo stesso endpoint di sviluppo attenderanno per l'avvio di nuovi executor. Se il set di dati è piccolo, Spark sarà in grado di allocare gli esecutori a più sessioni Livy contemporaneamente.

Nota

Per ulteriori informazioni sull'allocazione delle risorse in diversi casi d'uso e su come impostare una configurazione che modifichi il funzionamento, consulta Configurazione avanzata: condivisione degli endpoint di sviluppo tra più utenti.