Come posso impostare i parametri di Spark in Amazon EMR?
Desidero configurare i parametri di Apache Spark in Amazon EMR.
Breve descrizione
Per configurare le applicazioni Spark, utilizza argomenti della riga di comando come spark-submit. Oppure configura i valori nel file spark-defaults.conf per rendere permanenti le modifiche.
Risoluzione
Utilizza spark-submit per configurare i parametri di Spark
Per caricare le configurazioni in modo dinamico tramite la shell Spark e il comando spark-submit, utilizza una delle seguenti opzioni:
- Opzioni della riga di comando, come --num-executors.
- Il flag --conf.
Nota: per vedere l'elenco completo delle opzioni, esegui spark-submit--help.
Il comando spark-submit legge le opzioni di configurazione da spark-defaults.conf.
Nel file spark-defaults.conf, ogni riga include una chiave e un valore separati da uno spazio bianco.
Per ulteriori informazioni, consulta Submitting User Applications with spark-submit (Invio di applicazioni dell'utente con spark-submit). Per ulteriori informazioni sui parametri supportati da Spark, consulta Spark configuration (Configurazione di Spark) sul sito web Apache Spark.
Esempi di opzioni di configurazione:
--class \ --master \ --deploy-mode \ --conf = \ --num-executors \ --executor-memory G \ --driver-memory G \ --executor-cores \ --driver-cores \ --jars \ --packages \ --py-files < Comma-separated list of .zip, .egg, or .py files to place on the PYTHONPATH for Python apps> \
Il comando spark-submit trasferisce automaticamente il JAR dell'applicazione e tutti i JAR inclusi nell'opzione --jars al cluster. Devi separare gli URL forniti dopo --jars con virgole. spark-submit include l'elenco nei percorsi delle classi del driver e dell'esecutore e copia i JAR e i file nella directory di lavoro per ogni SparkContext nei nodi dell'esecutore.
Nota: l'espansione della directory non funziona con --jars.
Esempio di comando spark-submit:
spark-submit \ --deploy-mode cluster \ --class org.apache.spark.examples.SparkPi \ --conf spark.dynamicAllocation.enabled=false \ --master yarn \ --num-executors 4 \ --driver-memory 4G \ --executor-memory 4G \ --executor-cores 1 \ /usr/lib/spark/examples/jars/spark-examples.jar \ 10
Per passare i parametri di memoria, utilizza il flag --conf:
spark-submit \ --deploy-mode cluster \ --class org.apache.spark.examples.SparkPi \ --conf spark.dynamicAllocation.enabled=false \ --master yarn \ --conf spark.driver.memory=1G \ --conf spark.executor.memory=1G \ /usr/lib/spark/examples/jars/spark-examples.jar \ 10
Utilizza i parametri di Spark personalizzati per avviare spark-shell e pyspark shell
Per avviare spark-shell o pyspark shell, esegui questi comandi:
spark-shell
spark-shell \ --conf spark.driver.maxResultSize=1G \ --conf spark.driver.memory=1G \ --deploy-mode client \ --conf spark.executor.memory=1G \ --conf spark.executor.heartbeatInterval=10000000s \ --conf spark.network.timeout=10000001s \ --executor-cores 1 \ --num-executors 5 \ --packages org.apache.spark:spark-avro_2.12:3.1.2 \ --conf 'spark.serializer=org.apache.spark.serializer.KryoSerializer'
pyspark shell
pyspark \ --conf spark.driver.maxResultSize=1G \ --conf spark.driver.memory=1G \ --deploy-mode client \ --conf spark.executor.memory=1G \ --conf spark.executor.heartbeatInterval=10000000s \ --conf spark.network.timeout=10000001s \ --executor-cores 1 \ --num-executors 5 \ --packages org.apache.spark:spark-avro_2.12:3.1.2 \ --conf 'spark.serializer=org.apache.spark.serializer.KryoSerializer'
Utilizza spark-defaults.conf per configurare i parametri di Spark
Per rendere permanenti le modifiche alla configurazione, aggiungi la configurazione al file /etc/spark/conf/spark-defaults.conf. Quindi riavvia il server della cronologia Spark. L'esempio seguente configura la memoria dell'esecutore e la memoria del driver in spark-defaults.conf. In questo esempio, ogni riga è composta da una chiave e un valore separati da uno spazio bianco.
Esempio
spark.executor.memory 9486M spark.driver.memory 9486M
Il seguente esempio di configurazione configura il driver Spark e la memoria dell'esecutore durante l'avvio del cluster:
[ { "Classification": "spark-defaults", "Properties": { "spark.executor.memory": "9486M", "spark.driver.memory": "9486M" } } ]
Nota: in Amazon EMR la configurazione spark.yarn.executor.memoryOverhead ha un valore predefinito del 18,75%, mentre il valore predefinito standard di Spark è 0,1875%. Una volta configurato il processo Spark, monitorane le prestazioni e analizza l'utilizzo delle risorse per raccogliere informazioni e ottimizzare ulteriormente i parametri del processo.
Informazioni correlate
AWS open data analytics (Analisi dei dati aperti di AWS)
Modify your cluster on the fly with Amazon EMR reconfiguration (Come modificare velocemente un cluster con la riconfigurazione di Amazon EMR)
- Argomenti
- Analytics
- Tag
- Amazon EMR
- Lingua
- Italiano

Contenuto pertinente
AWS UFFICIALEAggiornata un anno fa
AWS UFFICIALEAggiornata 2 mesi fa