Come posso modificare la configurazione Spark in un notebook Amazon EMR?

2 minuti di lettura
0

Come posso personalizzare la configurazione per un processo Apache Spark in un notebook Amazon EMR?

Breve descrizione

Un notebook Amazon EMR è un notebook Jupyter serverless. Un notebook Jupyter utilizza il kernel Sparkmagic come client per lavorare in modo interattivo con Spark in un cluster EMR remoto tramite un server Apache Livy. È possibile usare i comandi Sparkmagic per personalizzare la configurazione di Spark. Una configurazione personalizzata è utile quando si desidera effettuare le seguenti operazioni:

  • Cambiare la memoria dell'esecutore e i core dell'esecutore per un processo Spark
  • Modificare l'allocazione delle risorse per Spark

Soluzione

Modifica della sessione corrente

1.    In una cella del notebook Jupyter, esegui il comando %%configure per modificare la configurazione del processo. Nell'esempio seguente, il comando modifica la memoria dell'esecutore per il processo Spark.

%%configure -f
{"executorMemory":"4G"}

2.    Per le configurazioni aggiuntive che di solito passi con l'opzione --conf, utilizzare un oggetto JSON annidato, come mostrato nell'esempio seguente. Utilizza questo metodo invece di passare esplicitamente un oggetto conf a uno SparkContext o una SparkSession.

%%configure -f
{"conf":{"spark.dynamicAllocation.enabled":"false"}}

Verifica che la modifica della configurazione sia andata a buon fine

1.    Sul lato client, esegui il comando %%info su Jupyter per verificare la configurazione della sessione corrente. Output di esempio:

Current session configs: {'executorMemory': '4G', 'conf': {'spark.dynamicAllocation.enabled': 'false'}, 'kind': 'pyspark'}

2.    Sul lato server, controlla il log /var/log/livy/livy-livy-server.out sul cluster EMR. Se è stata avviata una SparkSession, dovresti vedere una voce di registro simile alla seguente:

20/06/24 10:11:22 INFO InteractiveSession$: Creating Interactive session 2: [owner: null, request: [kind: pyspark, proxyUser: None, executorMemory: 4G, conf: spark.dynamicAllocation.enabled -> false, heartbeatTimeoutInSecond: 0]]

Informazioni correlate

Apache Livy - REST API

AWS UFFICIALE
AWS UFFICIALEAggiornata 2 anni fa